/*
多态的基础语法:
1、学习多态基础语法之前,我们需要普及两个概念:
第一个:向上转型
子 ---->父(自动类型转换)
第二个:向下转型
父 ---->子(强制类型转换,需要加强制类型转换符)
注意:Java中允许向上转型,也允许向下转型,无论是向上还是向下,两种类型之间必须有继承关系,没有继承关系,编译器报错。
*/
public class Test01{
public static void main(String[] args){
Animal a1 = new Animal();
a1.move();
Cat c1 = new Cat();
c1.move();
Bird b1 = new Bird();
b1.move();
//代码可以这样写吗?
/*
1、Animal和Cat之间有继承关系吗?有的
2、Animal是父类,Cat是子类
3、Cat is a Animal,这句话能不能说通?能
4、经过测试得知,java支持这样的语法:父类型的引用允许指向子类型的对象
new Cat()是一个子类型的对象
允许a2这个父类型引用指向子类型对象
*/
Animal a2 = new Cat();
Animal a3 = new Bird();
/*多态:多种形态
分析,a2.move()
首先,java程序分为编译阶段和运行阶段。
编译阶段,编译器只知道a2的类型是Animal,所以编译器在检查语法的时候,会去Animal.class字节码文件中找到move()方法,编译通过
运行阶段,在堆内存中创建的java对象是Cat对象,所以Move的时候,真正参与move的对象是一只猫。所以运行阶段会动态执行cat对象的move()方法。
多态表示多种形态,编译的时候是一种形态,运行的时候是另一种形态
*/
a2.move();
a3.move();
}
}
Java学习笔记 :多态的基础语法
最新推荐文章于 2022-11-20 16:45:19 发布