一、概念
多态性是指同一个操作作用于某一类对象,可以有不同的解释,产生不同的执行结果
二、必要条件
需要存在继承或实现(接口)关系
同样的方法调用而执行不同操作、运行不同代码(重写)
在运行时父类或者接口的引用变量可以引用其子类的对象
三、作用
多态通过分离做什么和怎么做,从一个角度将接口和实现进行分离
多态消除了类型之间的耦合关系
多态的存在提高了程序的拓展性和后期的可维护性
四、代码理解
//需要存在继承或实现(接口)关系
abstract class Animal{
public String name;
public abstract void eat();
}
class Dog extends Animal{
public void eat(){
System.out.println("狗啃骨头");
}
}
//同样的方法调用而执行不同操作、运行不同代码(重写)
class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
}
public class Test {
public static void main(String[] args) {
//在运行时父类或者接口的引用变量可以引用其子类的对象
Animal a1 = new Dog();
Animal a2 = new Cat();
a1.eat();
a2.eat();
}
}
/*
狗啃骨头
猫吃鱼
*/