1. 程式人生 > >C#08(封裝,繼承,多型)

C#08(封裝,繼承,多型)

封裝,繼承,多型

一、封裝 C#中可使用類來達到資料封裝的效果,這樣可以使資料與方法封裝成單一元素,以便於通過方法存取資料。除此之外,還可以控制資料的存取方式。 在面向物件程式設計中,大多數都是以類作為資料封裝的基本單位。類將資料和操作資料的方法結合成一個單位。設計類時,不希望直接存取類中的資料,而是希望通過方法來存取資料。這樣就可以達到封裝資料的目的,方便以後的維護升級,也可以在操作資料時多一層判斷。 此外,封裝還可以解決資料存取的許可權問題,可以使用封裝將資料隱藏起來,形成一個封閉的空間,然後可以設定哪些資料只能在這個空間中使用,哪些資料可以在空間外部使用。一個類中包含敏感資料,有些人可以訪問,有些人不能訪問,如果不對這些資料的訪問加以限制,後果將會非常嚴重。所以要對類的成員使用不同的訪問修飾符,從而定義他們的訪問級別。

封裝語法: Public 資料型別 變數名 { get { return 變數名 } set { 變數名=value; } } 二、繼承 繼承是面向物件最重要的特性之一。任何類都可以從另外一個類繼承,這就是說,這個類擁有它繼承類的所有成員。在面向物件程式設計中,被繼承的類稱為父類或基類。C#中提供了類的繼承機制,但只支援單繼承,而不支援多繼承,即在C#一次只允許繼承一個類,不能同時繼承多個類。

繼承語法: Public class 類名:父類名

如何使用父類裡面的成員變數,方法,建構函式? 關鍵字:base

成員變數: base.成員變數名 方法: base.方法名

三、多型 多型性意味著有多重形式。 在面向物件程式設計正規化中,多型性往往表現為"一個介面,多個功能"。 多型性可以是靜態的或動態的。 在靜態多型性中,函式的響應是在編譯時發生的。 在動態多型性中,函式的響應是在執行時發生的。

1.靜態多型性 在編譯時,函式和物件的連線機制被稱為早期繫結,也被稱為靜態繫結。C# 提供了兩種技術來實現靜態多型性。 分別為: 1.1方法過載: 可以在同一個範圍內對相同的方法名有多個定義。 方法的定義必須彼此不同,可以是引數列表中的引數型別不 同,也可以是引數個數不同。 不能過載只有返回型別不同的方法宣告。

1.2運算子過載

2.動態多型性 當有一個定義在類中的函式需要在繼承類中實現時,可以使用虛方法。 2.1:虛方法是使用關鍵字 virtual 宣告的。 2.2:虛方法可以在不同的繼承類中有不同的實現。 2.3:對虛方法的呼叫是在執行時發生的。 2.4:動態多型性是通過抽象類和虛方法實現的。

定義虛方法: 訪問修飾符 virtual 返回的資料型別/void 方法名() { //執行程式碼,也可以完全不寫 } 重寫父類的方法(子類中): 訪問修飾符 override 返回的資料型別/void 方法名() { //執行程式碼 }