1.什么是多态?多态的具体体现有哪些?
多态:方法或对象具有多种形态,是OOP的第三大特征,是建立在封装和继承基础之上多态具体体现
多态的具体体现
方法的多态:
对象的多态:
- 对象的编译类型和运行类型可以不一致,编译类型在定义时就确定,不能变化
- 对象的运行类型可以变化,可以通过getClass()来查看运行类型
- 编译类型看=号的左边,运行类型看=号的右边
案例
package com.logic.homework;
public class Homework16 {
public static void main(String[] args) {
AAA obj = new BBB();
AAA b1 = obj;
System.out.println("obj的运行类型是" + obj.getClass());
obj = new CCC();
System.out.println("obj的运行类型是" + obj.getClass());
obj = b1;
System.out.println("obj的运行类型是" + obj.getClass());
}
}
class AAA {//超类
}
class BBB extends AAA {//父类
}
class CCC extends BBB {//子类
}
2.Java的动态绑定机制是什么?
- 当调用对象的方法时,该方法会和对象的内存地址/运行类型绑定
- 当调用对象的属性时,没有动态绑定机制,哪里声明,哪里使用