JAVA多态
多态:
多态是:同一个对象体现出来的多种不同形态(身份),将一种行为表现出不同的效果。要想实现多态的效果,首先要有继承关系。
体现:
- 父类类型引用指向子类的对象
Teacher teahcer = new Teacher(); // 这个老师是一个老师
Person person = new Teacher(); // 这个人是一个老师 - 改引用(person)只能调用父类中定义的属性或方法
- 如果子类中将父类的方法重写了。那么调取方法后执行的结果是子类重写后的那个。
- 如果父类与子类有同名的属性,调用的是父类的属性
- 如果父类与子类有同名的方法(一模一样,方法体不同)执行子类重写后的方法。也就是第3点。
- 若想要调用子类中独有的成员,需要进行强制类型转换(也叫造型、铸型、向上/下转型)
- 必须注意的是,在进行向下转型的时候,可能会出现运行时异常:ClassCastException。造型异常 将对象的类型还原时,与真实类型不匹配。必须是严格的父子类关系才能转换。
如果想要避免造型的异常,可以用instanceof关键字类进行判断。写法:对象 instanceof 类