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.
05-17 09:33