多态
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
多态的作用:消除类型之间的耦合关系
多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。
多态的好处:
可替换性:多态对已存在代码具有可替换性。
可扩充性:多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能
接口性:多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
灵活性:它在应用中体现了灵活多样的操作,提高了使用效率。
简化性:多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载。
多态的优点
1. 消除类型之间的耦合关系
2. 可替换性
3. 可扩充性
4. 接口性
5. 灵活性
6. 简化性
Animal 动物类 Cat 猫类 Dog狗类 eat是父类中的方法,猫和狗都有这个方法
Animal animal = new Cat( ); animal .eat(); //调用的是猫类中的eat方法
Animal animal = new Dog( ); animal .eat(); //调用的是狗类中的eat方法
/**动物类*/
public class Animal {
public void eat(){
System.out.println("吃饭");
}
}
/**猫*/
public class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
}
/**狗*/
public class Dog extends Animal{
public void eat(){
System.out.println("狗吃骨头");
}
}
/**main方法*/
public class Test {
public static void main(String[] args) {
Animal catAnimal = new Cat();
catAnimal.eat();
Animal dogAnimal = new Dog();
dogAnimal.eat();
}
}