1.定义:
同类型的对象,执行同一个行为,会表现出不同的行为特征。
2.常见类型:
父类类型 对象名称 = new 子类构造器;
接口 对象名称 = new 实现类构造器;
3.成员访问特点:
方法:编译看左边,运行看右边。
变量:编译看左边,运行也看左边。
4.前提:
(1)、有继承/实现关系。
(2)、有父类引用指向子类对象。
(3)、有方法重写。
5.优势:
(1)、右边对象可以实现解耦合,便于扩展和维护。
(2)、扩展性与便利。
6.缺点:
不能使用子类独有功能。
7.强制类型转换(父到子):
Animak a = new Dog();
a.run();
Dog a1 = (Dog)a;
a1.run();
/*instanceof 转换*/
if(a1 instanceof Dog) {
Dog a2 = (Dog)a1;
a2.run();
}
else if(a1 instanceof Cat) {
Cat a2 = new Cat();
a2.run();
}