java繼承與多型

Kino醬發表於2019-01-21

今天看了下繼承和多型,總結了以下要點:

1.繼承的用法

  • 子類擁有父類的非private屬性和方法
  • 子類可以有自己的屬性和方法
  • 子類可以重寫父類的方法(override)

2.繼承慎用繼承

  • 父類變,子類則變
  • 破壞了封裝,對於父類而言裡面的屬性方法對子類都是透明的
  • 繼承是強耦合的關係

3.什麼時候用繼承

《Think in java》中提供瞭解決辦法:問一問自己是否需要從子類向父類進行向上轉型。如果必須向上轉型,則繼承是必要的,但是如果不需要,則應當好好考慮自己是否需要繼承。

最後一句話:慎用繼承

我們再來看看多型

1.基於繼承的多型用法

父類引用指向子類物件:如 B extend A 則可以 A a = new B b

  • 若子類過載了父類方法,則呼叫父類方法
  • 若子類重寫了父類的方法,則呼叫子類方法
  • **注意:**過載指:方法名一樣, 引數和返回值型別不同

2.多型注意:

  • 由於是指向子類物件,屬於向上轉型,只能訪問父類的屬性和方法
  • 子類中存在,父類中不存在的,引用是不可以使用,過載也包括在內
  • 子類重寫了父類的方法,那麼則會呼叫子類的物件

3.多型的三個必要條件:繼承,重寫,向上轉型

4.基於介面的多型

  • 繼承都是單繼承。但是介面可以是多繼承多實現
  • 在介面的多型中,必須是指向這一介面的例項的引用

相關文章