多态中的一些注意点
多态中的一些注意点
- 一个对象的编译类型在定义对象的时候就已经确定了,不能改变
- 一个对象的编译类型和运行类型可以不一致
- 运行类型是可以变化的
- 编译类型看定义的时候 = 左边是编译类型,右边是运行类型
代码如下
Animal animal = new dog();//animal编译类型是Animal
//运行类型是dog
Animal cat = new cat();//animal运行类型是cat
多态的细节讨论
多态的前提是:两个对象(类)存在继承关系
多态向上转型
- 本质:父类的引用指向了子类的对象
- 语法:父类类型 引用名 = new 子类类型();
- 特点:编译类型看左边,运行类型看右边
可以调用父类中的所有成员,不过需要遵守访问权限
不能调用子类中的特有成员
最终运行效果看子类的具体表现
多态向下转型
- 语法 子类类型 引用名 = (子类类型) 父类引用;
- 只能强转父类的引用,不能强转父类的对象
- 要求父类的引用必须指向的是当前目标类型的对象
- 当向下转型后,可以调用子类类型中所有的成员
成员: 属性和方法
java的动态绑定机制
- 当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定
- 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用
ps:
Java中一些知识点的比较


浙公网安备 33010602011771号