close

物件導向程式設計(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 關鍵字

 

最後~

若有任何錯誤或建議,歡迎大家提出~

arrow
arrow
    文章標籤
    Android Android APP OOP
    全站熱搜
    創作者介紹
    創作者 Jerry 的頭像
    Jerry

    Android工程師生存筆記

    Jerry 發表在 痞客邦 留言(0) 人氣()