为什么可以用super调用父类方法,而用父类名调用父类方法会报错

2025-05-17 02:22:36
推荐回答(2个)
回答1:

使用类名+“.”+xxx的形式可以调用静态成员变量和静态方法xxx,非静态成员需要使用对象的实例去调用,如代码中的super指向的就是一个父类的实例,而setEmpName()只是一个普通的方法,是非静态成员;
总结一下:调用方式出错了。如果要使用Employee.setEmpName(empName);不报错,需要将父类的该方法定义为static修饰的

回答2:

严格来说也没有为什么,这是JAVA的语法规定,你这种写法是调用静态方法的写法