物件導向程式設計(OOP) 具有三大核心特性:封裝、繼承和多型 。
以下我來分別詳細介紹這三大特性:
1. 封裝:
封裝指的是在程式裡設置權限,通過使用 private 、 protected 、 public 等訪問修飾詞來控制類別成員的訪問權限。這種權限設定保護了敏感數據,防止其被外部訪問,從而增強了程式的穩定性和安全性。
例如,在 Java 或 Kotlin 中,設為 private 的成員只能在其所屬類別內部被存取。
2. 繼承:
繼承使得一個類別(子類別)能夠繼承另一個類別(父類別)的屬性和方法。
在 Java 和 Kotlin 中,雖然每個類別只能繼承一個父類別,但它們可以實現多個介面(Interface),從而提供類似於多重繼承的功能。
3. 多型:
多型允許通過相同的方法來操作不同的實現,主要通過以下兩種方式實現:
- 多載(Overloading):
一個類別可以實現同一方法名但擁有不同參數列表(數量或類型)的多個版本。
例如,在同一類別中,一個show方法可以根據傳入參數的類型和數量來進行不同的操作。
- 覆寫(Overriding):
在子類別繼承父類別的時候,我們可以依照子類別的需求來改寫父類別的方法
以下是一個簡單範例,展示了如何在 Android 開發中應用封裝、繼承和多型:
1. 父類別 Animal
open class Animal {
open fun eat() {
println("This animal eats food.")
}
}
2. 透過子類別 Cat 來繼承父類別 Animal 並使用多型的覆寫(Overriding) 的概念來改寫 Animal 類別中的 eat 方法
class Cat : Animal() {
override fun eat() {
println("This cat eats fish.")
}
}
3. 再來我們在 MainActivity 中,將Cat類別進行物件實體化,創建一個myCat物件,並透過myCat物件呼叫 eat方法
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myCat = Cat()
myCat.eat()
}
}
注意事項:
上述範例中使用的 open 關鍵字是非常重要的,因為在 Kotlin 中,類別和方法預設為 final,意味著它們無法被繼承或覆寫。若需要讓類別或方法可以被繼承或覆寫,則必須明確地使用 open 關鍵字。
最後~
若有任何錯誤或建議,歡迎大家提出~