package com.ssm.java;

/**
 * Super
 * usage1:super.  直接去调用父类的方法和属性。
 * usage2:放在构造器中的第一位,代表引用父类的构造器。
 */
class SuperSub {
    String name;
    void value() {
        name = "China";
    }
    SuperSub(){
        System.out.println("父类,无参构造方法");
    }
    SuperSub(String name){
        System.out.println("父类,有参构造方法");
    }
}
public class SuperUsage extends SuperSub{
    String name;
    void value() {
        name = "Shanghai";
        super.value();      //调用父类的方法
        System.out.println(name);
        System.out.println(super.name);
    }

    SuperUsage(){
        super();//调用父类无参构造函数
        System.out.println("子类,无参构造方法");
    }
    SuperUsage(String name){
        super(name);//调用父类有参构造函数
        System.out.println("子类,有参构造方法");
    }


    public static void main(String[] args) {
        SuperUsage superUsage = new SuperUsage();
        superUsage.value();//输出结果 Shanghai   China


        SuperUsage superUsage1 = new SuperUsage();
        superUsage=new SuperUsage("li");
        /**
         * 输出结果:
         * 父类,无参构造方法
         * 子类,无参构造方法
         * 父类,有参构造方法
         * 子类,有参构造方法
         */

    }
}

Super用法总结:

 * usage1:super.  直接去调用父类的方法和属性。
 * usage2:放在构造器中的第一位,代表引用父类的构造器。

有这样一个场景:员工都有基本工资。作为一个属性。放到父类中。然后自己还有一个奖金bonus。结算工资的时候是奖金+基本工资。就是super.salary+bonus.

版权声明:本文为bulrush原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/bulrush/p/8940960.html