super关键字

person是父类,student是子类,

 

 

调用属性或者方法

super关键字

super和this调用属性的区别:

子父类中出现同名的属性的时候,记住属性是不能覆盖的,即子类中有两个同名的属性,设属性为int类型的id,子类为1001,父类为1002,new一个子类的对象S,这时输出子类的id的时候语句为:

system.out.println(id)

输出父类的id的时候

system.out.print(super.id)

结果为:

1001 1002

super 和this调用方法的区别

super方法时,是直接从父类去找,直接父类没找到再到间接父类去找,而this.属性或者方法时就会先到子类去找,然后再往父类找。理解super时可以对比this进行理解

所以如果子父类有同名方法super.方法就是调用父类的,this.是先调子类,再调父类

 

 

super调用构造器的理解

super关键字

 

子类构造器的首行如果没有显式的声明是调用this()还是super(),我们就默认为调用super(),即在子类的构造器中

public Student(){ }

里面其实还有一个super(),这个super会先调用父类中的无参构造器。

上一篇:对象的继承


下一篇:面向对象的三大特性