继承:基于已存在的类,构建一个新类,继承已存在类的方法和域。
super:指示编译器调用超类的特殊关键字
- 当子类对父类方法进行重构时,并且调用到父类方法时,不能直接普通调用,普通调用实际上是子类方法自己调自己,需使用super指向超类调用。
- 超类的域定义为私有域时,子类是不能对超类的私有域进行访问的。如果超类中有参构造器对私有域进行定义,子类有参构造器中亦需要对超类私有域进行定义时,可以在子类构造器中使用super(),调用超类构造器,亦可以对超类进行构造器进行赋值初始化
多态:继承中存在向上、向下转型机制,因此一个超类变量既可以引用超类对象,也可以引用子类对象
以下贴出部分代码,博文描述有误烦请指出
/***超类
**/
public class Father {
Father(double money){
this.money =money;
}
private static double money = 2.16;
public double getMoney(){
return money;
}
}
/***子类
**/
public class Child extends Father {
Child(double money,double bonus){
super(money);
this.bonus = bonus;
}
private static double bonus = 3.16;
public double getMoney(){
// 错误写法
// double count = bonus + getMoney();
double count = bonus + super.getMoney();
System.out.println(count);
return count;
}
public static void main(String[] args) {
Child child = new Child(2,4);
child.getMoney();
}
}
------------------------------- 向上转型
Father father = new Child(0,1);
((Child) father).getMoney111();