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