物件導向4 2 封裝性 繼承性

2022-09-17 18:45:11 字數 2011 閱讀 1729

一、封裝性

訪問修飾符:

public:訪問許可權最高,在命名空間內隨意訪問!

private:訪問許可權最低,只有當前類的內部才可以訪問。

internal:內部的。在當前程式集(命名空間,即namespace)內可以訪問。是程式預設修飾符

protected;在當前類和他的子類才可以訪問!

ps:命名空間:也叫程式集,專案中的每乙個資料夾都是乙個獨立的命名空間。如果要使用某乙個命名空間下的類檔案,必須首先引用此命名空間!!

以前命名類的時候都是

public int code;

public string name;

然後在main函式裡面先進行例項化,然後就可以隨意引用code,name屬性。這樣子,任何人都可以隨便訪問。為了防止這種現象發生,我們就要對其進行封裝,要這樣進行封裝:

private

int _code;//

將public換成private

public

int code //

建立乙個變數code,通過這個變數來訪問_code

//輸出的結果。

set//

進行賦值,value為賦的值。可以再裡面的value進行條件設定

}

set {}和get{}可以只有一種!!同時也可以有多個public

總結封裝性:

乙個成員變數可以有很多個屬性;

屬性返回值可以是任意型別,不是必須要與成員變數型別相同;

屬性可以是唯讀的,也可以只寫的,也可以是兩者兼備的!

二,繼承性

在同乙個namespace下面建乙個類,如fly

public

string

fly1()

在main函式裡面:

fly f=new

fly();

string a=f.fly1();

console.write(a);

輸出值為:我可以飛。

然後進行繼承:

新建乙個bird類

在bird這個類裡面這樣寫:

public

string bird:fly//

注意:「:fly」

這樣bird就繼承了fly的所有屬性(除了private)。

bird a=new

bird();

string b=a.fly1();

console.write(b);

輸出結果為:「我可以飛」。

子類父類的轉換:

上面中,fly是bird的父類,bird是fly的子類;

//

子類強制轉換為父類

bird b=new

bird();

fly f=(fly) b; //f可以呼叫bird裡面的屬性和方法。

//f

(此時是跟fly同為父類)也可以再次次轉成以前相應的子類

bird bb=(bird) f; //bb可以呼叫bird裡面的屬性和方法

繼承性總結:

子類可以繼承父類所有的方法和屬性(private 除外);

父類不可以呼叫子類的方法和屬性,哪怕是public;

子類可以轉換成父類,轉換成的父類也可以轉換成相應的子類,但是不能轉換成其他的子類。如父類1,子類有兩個子類:1.1和1.2,1.1可以轉換成父類1,然後1也可以再次轉換成1.1,但是不能轉換成1.2。

完!!!!

物件導向 封裝性 繼承性 多型性總結

二 繼承性 三 多型性 封裝性就是將物件內部的複雜性隱藏起來,只是對外部公開簡單的介面,便於外界呼叫,從而提高系統的可擴充套件性 可維護性。通俗的說,就是把該隱藏的隱藏起來,該暴露的暴露出來。將類的屬性設為私有的 private 並提供set或者get方法。此時,針對屬性就體現了封裝性。不對外暴露的...

GO 物件導向 繼承性

首先我們需要定義父級的結構體和方法 然後在寫孩子的結構體和方法 從而就會有三種形式 在學到這一步貌似go的繼承比php的要簡單的多 go的繼承只需要把父級的結構體名直接放到裡邊就行 繼承後可以訪問父級的屬性和方法 也可以訪問自己的專有屬性 同時還擁有重寫父級方法 所有案例都配備有 直接扔進去就可以執...

php物件導向之二 封裝性

具體概念講出來,感覺也不知道說的是什麼.其實就是 在類的成員屬性和成員方法前面,加上類似public protected private 的修飾符 目的 盡量地隱藏物件的內部細節,達到訪問控制.不是拒絕訪問 對外形成乙個屏障,只保留有限的對外介面與外部發生聯絡.2.封裝的原則 物件對外的部分不能夠隨...