多態(tài) Polymorphism

2018-07-03 14:36 更新

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

  • 重載overloading

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

  • 覆寫overriding

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

例子

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

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

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

  1. public class Animal {
  2. public void makeNoise()
  3. {
  4. System.out.println("Some sound");
  5. }
  6. }
  7. class Dog extends Animal{
  8. public void makeNoise()
  9. {
  10. System.out.println("Bark");
  11. }
  12. }
  13. class Cat extends Animal{
  14. public void makeNoise()
  15. {
  16. System.out.println("Meawoo");
  17. }
  18. }
  19. public class Demo
  20. {
  21. public static void main(String[] args) {
  22. Animal a1 = new Cat();
  23. a1.makeNoise(); //Prints Meowoo
  24. Animal a2 = new Dog();
  25. a2.makeNoise(); //Prints Bark
  26. }
  27. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號