目录
1.基本介绍
理解:super关键字,调用父类的构造器(最近的父类)、方法和属性;
2.语法
2.1构造器中:
1)super()无参:每一个子类的构造器中都存在一个默认无参构造器;若父类的无参构造器被覆盖,需要指定构造器;
2)super()有参数:调用指定构造器; super("charlie",7);
3)必须放在第一句
2.2调用方法和属性:
1)调用父类属性:super.属性名
2)调用父类方法:super.方法(参数)
2.3寻找策略
找 cal 方法时(cal() 和 this.cal()),顺序是:
(1)先找本类,如果有,则调用
(2)如果没有,则找父类(如果有,并可以调用,则调用)
(3)如果父类没有,则继续找父类的父类,整个规则,就是一样的,直到 Object 类
提示:如果查找方法的过程中,找到了,但是不能访问, 则报错, cannot access
如果查找方法的过程中,没有找到,则提示方法不存在
3.super好处
不需要在子类的构造器中,赋值父类中的属性,子类的属性由子类初始化;
4.super与this
区别 | super | this |
访问属性 | 父类 | 本类 |
调用方法 | super. | 访问本类的方法,如果没有从父类找*** |
调用构造器 | 调用父类super() 首行 | 调用本类构造器-首行 (提高代码复用性) |