JAVA里的多态机制(一)

写在前面
在学习java基础时发现多态机制有点难理解。所以写一篇文章来记录对多态机制的理解,希望看到这篇文章的大佬们发现有问题的地方可以提提意见谢谢~~~~~


向上转型

概念

把对某个象的引用视为对其基类型的引用的做法被称为向上转型。(Thinking in Java )

个人见解

有一个子类Son继承自父类Father.子类Son 的一个对象的引用指向父类Father的一个对象的引用father。
father = son(这就是一个向上转型)详细代码如下:

/**
 * @author lichen
 * 多态实例
 */
//: ~polymorphic/com.rootchen.poly/PolyTest.java
package com.rootchen.poly;
class Father{
    public void show() {
        System.out.println("父类中的show方法");
    }
}

class Son extends Father{
    //重写父类show方法
    public void show() {
        System.out.println("子类中的show方法");
    }
}

public class PolyTest {
    public static void main(String[] args) {
        //向上转型
        /*Father father = new Father();
        Son son = new Son();
        father = son;           //子类对象的引用赋值给父类对象的引用
        father.show();*/
        Father son = new Son(); //子类对象赋值父类对象的引用         
        son.show();
    }
}  /*  output:
子类中的show方法
*///:~

1、之所以子类对象或者子类对象的引用可以赋值给父类对象,是因为通过继承其实子类Son就是父类Father的一种,类似于方形圆形都是几何图形一样。
2、之所以输出的结果是子类中的show方法是因为后期绑定(多态) 正确的调用了子类中的show方法。虽然看着是父类的引用调用的show方法,实质父类引用指向的对象类型是子类对象,所以调用的是子类的show方法。


方法的调用绑定

概念

将一个方法调用同一个方法主体关联起来被称为绑定。若在程序执行前进行绑定叫做前期绑定,C的调用方法就是前期绑定。
在运行时根据对象类型进行绑定叫做后期绑定。(Thinking in Java)

你可能感兴趣的:(JAVA里的多态机制(一))