super的用法
1 概念
它是一个指代变量,用于在子类中指代父类对象。
2 应用范围
super的是那种使用情况:
访问父类的方法。
调用父类构造方法。
访问父类中的隐藏成员变量。
3 使用
(1)访问父类中的方法
第一步 :定义Father类
public class Father{ private String father_a; public Father(){ father_a = "父亲:曹操"; System.out.println("我是," + father_a); } void dosomething() { System.out.println("曹操:挟天子以令诸侯"); } }
第二步:定义son类
public class Son extends Father { private String son_a; public Son() { super(); son_a = "儿子:曹冲"; System.out.println("我是," + son_a); } @Override void dosomething() { super.dosomething(); } }
第三步:测试
public class test { public static void main(String[] args) { Son son = new Son(); son.dosomething(); } }
结果:
super.dosomething();执行了父类的dosomething方法。
(2)重写父类变量
第一步:定义父类
第二步:定义子类
第三步:
(3)子类构造方法调用
第一步:定义父类
第二步:定义子类
第三步:测试
情况一:直接调用super()会执行父类的无参构造方法,可以默认不写;
情况二:使用super("父类参数"),调用父类有参构造方法,把参数传递进来就好。
特殊情况一:父类只有带参构造器(无参构造器没有),子类必须有相同的构造方法。
父类:只有一个带参构造器
子类必须要有一个显示的构造方法去匹配父类
测试:
结果:
注意:当父类只有一个带参构造方法,没有无参构造方法时候,子类的构造方法中必须添加super(参数);