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("曹操:挟天子以令诸侯");
    }
}
View Code

  第二步:定义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();
    }
}
View Code

  第三步:测试

public class test {
    public static void main(String[] args) {
        Son son = new Son();
        son.dosomething();
    }
}
View Code

  结果:

  

  super.dosomething();执行了父类的dosomething方法。

  (2)重写父类变量

  第一步:定义父类

  

   第二步:定义子类

  

   第三步:

  

   (3)子类构造方法调用

  第一步:定义父类

  

   第二步:定义子类

  

   第三步:测试

  

   情况一:直接调用super()会执行父类的无参构造方法,可以默认不写;

   情况二:使用super("父类参数"),调用父类有参构造方法,把参数传递进来就好。

   特殊情况一:父类只有带参构造器(无参构造器没有),子类必须有相同的构造方法。

  父类:只有一个带参构造器

  

   子类必须要有一个显示的构造方法去匹配父类

  

   测试:

   结果:

  

  注意:当父类只有一个带参构造方法,没有无参构造方法时候,子类的构造方法中必须添加super(参数);

    

原文地址:https://www.cnblogs.com/zyc19910109/p/12579700.html