主题:关于多态
时间:2018-10-02
内容:
- 什么是多态?
多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
- 多态的三要素?
- 继承关系(在多态中必须存在有继承关系的子类和父类。)
- 重写(子类重写了父类的方法)
- 基类对象指向子类实例(向上转型)
-实现多态的机制?
- 重写(覆盖)overriding 重写是子类和父类之间的多态。
- 重载overloading 重载是在一个类中多态性的一种表现。
-实现多态的技术?
动态绑定:绑定的是引用变量所指向的具体实例对象的方法,也就是内存中正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
个人理解:在对象创建的时候,不能以创建对象的类型来确认调用的方法,即编译期间。而是在引用指向对象调用方法的时候,即运行期间。(自己也不是理解的很透彻,作为一个参考吧 >0<!)
此外,只能方法才有多态,而属性没有多态的概念。
-举例
父类
public class father {
public void f() {
System.out.println("爸爸的方法");
}
}
子类
public class son extends father{
public void f() {
System.out.println("儿子的方法");
}
}
main主函数
public class Main {
public static void main(String [] args) {
father ff = new son();
ff.f();
father ff2 = new father();
ff2.f();
}
}
结果