提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本人刚开始学习多态,感觉理解的马马虎虎,所以把自己学到的东西放这里,忘了就拿出来看看
一、多态是什么?
同一个对象,在不同的时刻表现出来的不同形态
示例: 狗
狗就是狗 狗 dog =new 狗();
我们也可以说 动物 animal =new 狗();
这里狗在不同的时刻表现出不同的形态,这就是多态。
多态的前提和体现
1.有继承/实现关系;
2.方法重写
3.有父类引用指向子类对象
二、使用步骤
1创建一个AnimalParent父类
代码如下(示例):
package com.xxf.parent;
public class AnimalParent {
//父类 Animal(动物类)
public void eat(){
System.out.println("这是我们的动物类,都有eat方法");
}
}
2.再创建一个dog子类
代码如下(示例):
package com.xxf.parent;
public class dog extends AnimalParent{
/*
* 多态的基本条件
* 1、有继承或者实现的关系
* 2、方法的重写---子类重写父类的方法
* 3、父类的引用指向我们的子类
* */
@Override
public void eat(){
System.out.println("子类(狗类)重写了我们的父亲类eat方法");
}
}
3.再创建一个AnimalDemo测试类
package com.xxf.parent;
public class AnimalDemo {
public static void main(String[] args) {
//本身的类型指向引用new本身的对象
dog dog=new dog();
dog.eat();
//有父类的引用指向我们的子类(多态)
AnimalParent animalParent=new dog();
animalParent.eat();
}
}
运行结果
三、多态的访问特点
成员变量:编译看左边,执行看左边;
成员方法:编译看左边,执行看右边;