面向对象三大特征:封装性,继承性,多态性
extends 和接口实现类是多态的前提
多态的例子
小明是一个对象,小明即使学生形态,也是人类
代码中体现多态性
格式:
父类名称 对象名 =new 子类名称;
访问成员变量的两种方式:编译看左边运行还看左边
1.直接通过对象名称访问成员变量,看等号左边是谁就优先用谁,没有则向上找
(成员变量不能覆盖重写)
2.间接通过成员来访问成员变量。
访问成员方法的方式
new的是谁优先用谁;编译看左边,运行看右边
多态的好处:
.无论右边new换成那个子类对象,等号左边调用都不会发生变化,是代码更加的灵活。
向上转型 :格式 父类名称 对象名=new 子类名称();
含义,右边是一个子类对象,把它当作父亲来是使用
Animal animal=new Cat();
向下转型
子类名称 对象名=(子类名称)父类对象;
含义:将父亲对象【】还原成原来的子类对象
Cat cat=(Cat)animal;
注意事项:对象创建时本来就是猫;
instanceof 格式 判断
对象 instanceof 类名称;
会得到一个布尔值