java之多態(Polymorphic)、動態綁定(Dynamic Binding)、遲綁定(Late Binding)

今天,咱們來講說java面向對象最核心的東西,多態。經過多態能夠使咱們的程序可複用性達到極致,這就是咱們爲何要學多態的緣由。java

「多態」(Polymorphic)也叫「動態綁定」(Dynamic Binding)同時也叫「遲綁定」(Late Binding)。this

動態綁定是指「在執行期間(而非編譯期間)判斷所引用對象的實際類型,根據其實際類型調用其相應的方法。」spa

程序代碼:3d

public class TestPolymorphic{
    public static void main(String args[]){
    
        Animal animal = new Animal("animal");
        Cat cat = new Cat("cat","blue");
        Dog dog = new Dog("dog","black");
        
        Lily l1 = new Lily("l1",animal);
        Lily l2 = new Lily("l1",dog);
        
        l1.myAnimalEnjoy();
        l2.myAnimalEnjoy();
    }
}
class Lily{
    private String name;
    private Animal animal;
    public Lily(String name, Animal animal){
        this.name = name;
        this.animal = animal;
    }
    public void myAnimalEnjoy(){
        animal.enjoy();
    }
}
class Animal{
    private String name;
    public Animal(String name){
        this.name = name;
    }
    public void enjoy(){
        System.out.println("叫聲~~~");
    }
}
class Dog extends Animal{
    
    private String forlorColor;
    public Dog(String name,String forlorColor){
        super(name);
        this.forlorColor = forlorColor;
    }
    public void enjoy(){
        System.out.println("dog叫聲~~~");
    }
}
class Cat extends Animal{
    
    private String eyesColor;
    public Cat(String name,String eyesColor){
        super(name);
        this.eyesColor = eyesColor;
    }
    public void enjoy(){
        System.out.println("cat叫聲~~~");
    }
}

程序運行結果:code

總結:經過以上示例,咱們發現多態必備的三個條件一、有繼承二、有重寫三、父類引用指向子類對象對象

相關文章
相關標籤/搜索