今天,咱們來講說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
總結:經過以上示例,咱們發現多態必備的三個條件一、有繼承二、有重寫三、父類引用指向子類對象對象