标签:Java 对象 子类 多态 编译 类型 运行
Java 多态
1. 多态
方法或对象具有多种形态。是面向对象的三大特征之一,多态是建立在封装、继承基础之上的
2. 多态的实现:
方法的重载中,使用不同的形参调用方法体现出了多态
方法的重写中,使用父类或子类的对象调用方法体现出了多态
对象的多态:
对象的编译类型与运行类型可以不一样
编译类型与运行类型:编译类型可以看定义时 = 号左边的类型,运行类型则是= 号右边的类型。
编译类型在定义的时候就确认了不能改变,而运行类型的改变体现出了对象的多态
3. 向上转型、向下转型
向上转型: 父类的引用指向子类,此时编译类型是父类,运行类型是子类,在编译阶段只能调用编译类型的成员,如果使用了子类的成员会提示语法错误。最终运行时,先从运行类型开始找,依次向上寻找。
向下转型:
语法:子类类型 引用名 = (子类类型) 父类引用。
把编译类型的引用强制往下转型,在转型的时候需要特别注意编译类型要与原来的运行类型相一致。向下转型并不是改变了这个对象,而是更改了他的引用。
4. instanceof 运算符
语法:对象名 instanceof 对象类型 真返回 true ,假返回 false
判断其运行类型是否是此类型或者是其类型的子类
5. 动态绑定机制
调用对象的方法时候,该方法会和对象的运行类型绑定。
调用属性的时候,则没有绑定,即哪里声明哪里使用。
标签:Java,
对象,
子类,
多态,
编译,
类型,
运行
From: https://www.cnblogs.com/Sean-y/p/17590413.html