| Java核心编程总结(十、反射) 🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/117744497 |
===========================================================================
概念:同一个类型的对象,执行同一个行为,在不同状态下会表现出不同的行为特征
理解:都是动物类型的对象,执行run
方法,在不同状态下表现出不同行为特征
-
父类类型 对象名称 = new 子类构造器
-
Anilam c = new Cat()
-
接口 对象名称 = new 实现类构造器
-
父类类型范围 > 子类类型范围
public class PolymorphicDemo {
public static void main(String[] args) {
//父类类型 对象名称 = new 子类构造器;
Animal dlam = new Cat();
dlam.run(); //对于方法的调用: 编译(写代码)看左边Animal,运行看右边 Cat
//看左边指的是看等号的左边,等号左边是Animal,会找Animal里面的run方法,不报错
//运行的时候看等号的右边,等号右边是Cat,执行Cat里面的run方法
// 🐱跑的飞快~~~
System.out.println(dlam.name); //对于变量的调用: 编译看左边,运行看左边
//动物名称Animal
Animal taiDi = new Dog();
taiDi.run(); //对于方法的调用: 编译(写代码)看左边,运行看右边
//🐕跑的飞快~~~
System.out.println(taiDi.name); //对于变量的调用: 编译看左边,运行看左边
//动物名称Animal
}
}
class Dog extends Animal{
public String name = “狗的名称Dog”;