1 继承的本质
子类继承父类,创建子类对象时,当子类对象创建好后,建立查找关系
查找关系
访问某个属性,首先看子类是否有该属性,如果子类有这个属性,并且可以访问,则返回信息
如果子类没有这个属性,就向上(父类)查找,按此逻辑,直到object
2 super关键字
super代表父类引用,用于访问父类的属性,方法,构造器
Super.xxx; 但不能访问私有的属性和方法
super的访问不限于直接父类,如果爷爷类和本类中有同名的成员,也可以使用super去访问爷爷类的成员,super的访问遵循就近原则
3 super 与 this 比较
区别 | this |
访问属性 | 访问本类属性,如果没有则从父类中继续查找 |
调用方法 | 访问本类方法,如果没有则从父类中继续查找 |
调用构造器 | 调用本类构造器,必须放在构造器首行 |
特殊 | 表示当前对象 |
区别 | super |
访问属性 | 从父类开始查找属性 |
调用方法 | 从父类开始查找方法 |
调用构造器 | 调用父类构造器,必须放在子类构造器的首行 |
特殊 | 子类中访问父类对象 |
4 方法的重写
子类的方法覆盖了父类的方法(名称,返回类型,参数都一样)
子类的方法返回类型和父类方法的返回类型一样
子类方法不能缩小父类方法的访问权限
子类不能继承父类的private成员,但是可以通过在父类中提供public或protected方法来访问
子类不继承父类的构造方法