多態(tài) Polymorphism

2018-07-03 14:36 更新

多態(tài)就是指一個(gè)變量, 一個(gè)方法或者一個(gè)對象可以有不同的形式. 多態(tài)主要分為

  • 重載overloading

就是一個(gè)類里有兩個(gè)或更多的函數(shù),名字相同而他們的參數(shù)不同.

  • 覆寫overriding

是發(fā)生在子類中!也就是說必須有繼承的情況下才有覆蓋發(fā)生. 當(dāng)你繼承父類的方法時(shí), 如果你感到哪個(gè)方法不爽,功能要變,那就把那個(gè)函數(shù)在子類中重新實(shí)現(xiàn)一遍.

例子

重載 靜態(tài)捆綁 (static binding) 是 Compile 時(shí)的多態(tài)

EmployeeFactory.create(String firstName, String lastName){...}
EmployeeFactory.create(Integer id, String lastName){...}

覆寫 動(dòng)態(tài)捆綁 (dynamic binding) 是 runtime 多態(tài)

public class Animal {
    public void makeNoise()
    {
        System.out.println("Some sound");
    }
}


class Dog extends Animal{
    public void makeNoise()
    {
        System.out.println("Bark");
    }
}


class Cat extends Animal{
    public void makeNoise()
    {
        System.out.println("Meawoo");
    }
}




public class Demo
{
    public static void main(String[] args) {
        Animal a1 = new Cat();
        a1.makeNoise(); //Prints Meowoo


        Animal a2 = new Dog();
        a2.makeNoise(); //Prints Bark
    }
}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號