多态类型:
接口多态和抽象多态参考:深入理解Java的接口和抽象类 - Matrix海子 - 博客园
抽象类多态(Class)(abstract)-----------------(子类名 extends 抽象类父类名)
接口多态(Interface)(interface)----------------------------(子类名 implement 接口名)
具体类多态:
向上转型:无难点,略.
向下转型:
多态就像是就是龙生九子,都认你是龙,但能力各不相同,但龙的身份能做的事,九子都能做,但九子又不完全是龙,核心一样,一龙多态.如果龙子想要做自己才能做的事情,包括使用龙子的特征,就需要向下转型,强转为龙子的类型.
就算是同一父类下的子类,依然不可以互相强转.毕竟龙A和龙B有本质区别.
public class AnimalDemo {
public static void main(String[] args) {
//向上转型
animal a=new cat();
System.out.println(a.age);//调用成员变量时,指向父类
a.work();
a.eat();//调用方法时,向上转型中,调用必须是父类中有的,如果子类中重写了方法,则调用子类方法.
//向下转型
cat c= (cat) a;
//此处c与a地址值相同
System.out.println(c.age);//向下转型后调用参数指向子类.
c.eat();
c.work();//此处属于调用父类方法.
//不可如此转型.
Dog d=(Dog) a;
System.out.println(c.age);
d.eat();
d.work();
}
}



