如何理解多态

定义:不同类的对象对同一个消息作出不同的响应。





解释:见如下代码

不同类的对象:子类cat和子类dog

同一个消息:调用eat()方法

不同的响应:分别为 cat eat 和 dog eat

//父类Animalpublic class Animal {
    public void eat(){
        System.out.println("animal eat");
    }
}
//子类Cat
public class Cat extends Animal{
    @Override
    public void eat() {
        System.out.println("cat eat");
    }
}
//子类Dog
public class Dog extends Animal{
    @Override
    public void eat() {
        System.out.println("dog eat");
    }
}//测试
public class TestController {    public static void main(String[] args) {        Animal animal1 = new Cat();        Animal animal2 = new Dog();        animal1.eat();        animal2.eat();    }}

结果:

cat eat
dog eat

由此引出多态存在的三个条件

多态存在的三个条件
1.有继承关系

Cat和Dog继承Animal

2.子类重写父类的方法

Cat和Dog重写父类Animal的eat方法

3.父类的引用变量指向子类对象

Animal animal1 = new Cat();
Animal animal2 = new Dog();

多态的作用

消除类型之间的耦合关系,即解耦。

举例:

你定义了一个接口,功能是存储文件。定义了一个下载工具类用来存储下载的文件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容