super(name),使显式调用父类的构造方法,子类继承父类的方法getName(), new Student("lisi").getName()返回值的区别:如果父类和子类中变量唯一,则返回唯一变量的值;如果子类和父类中有相同的变量,则返回父类的值,Student类继承了Person类,子类Student中是为有参构造方法,所以想调用父类的构造方法,必须显式调用super("lisi"),否则,不会调用父类的构造方法!详细介绍如下:
第一种情况为:实际上没有调用父类的构造方法,由于继承Person,所以直接把参数赋给继承的name变量;调用的getName()返回仅有的变量值;
第二种情况为:通过super(name)调用父类的构造方法把参数值赋值给父类中的变量name,由于子类和父类都有相同的变量,所以调用方法getName()返回的是父类中的变量值,
第三种情况为:this。name = name把值赋给子类Student中的变量,而父类中的为空,由于子类和父类都有相同的变量,所以调用方法getName()返回的是父类中变量的null值, |