多态的优点
1.消除类型之间的耦合关系
2.可替换性
3.可扩充性
4.接口性
5.灵活性
6.简化性
多态存在的三个必要条件
1.继承
2.重写
3.父类引用子类对象
instanceof关键字
可以通过instanceof关键字来判断某个对象是否属于某种数据类型。
多态中,编译是否通过看左边,运行看右边,当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译失败;如果有,再去调用子类中同名的方法,如果没有,则调用父类中的方法;如果需要调用子类特有的方法,则需要向下转型后再调用。
父类方法
public abstract class animal {
public void work() {
System.out.println("我要工作");
}
public abstract void eat();
public void run() {
System.out.println("我会跑");
}
}
子类方法
public abstract class animal {
public void work() {
System.out.println("我要工作");
}
public abstract void eat();
public void run() {
System.out.println("我会跑");
}
}
多态测试
public class testDemo{
public static void main(String[] args){
animal an = new cat();
an.eat();
an.work();
an.run();
cat bn = (cat)an;
bn.catchFish();
bn.work();
bn.run;
}
}
运行结果:
吃
我要工作
猫会跑
我会抓鱼
我要工作
猫会跑