C艹 類的繼承 類成員的訪問控制

2021-09-02 13:33:39 字數 2391 閱讀 1901

一、類的繼承

1.類在功能上的拓展(extend)

2.只能有乙個基類,但可以實現多個基介面

3.類訪問級別對繼承的影響

4.sealed類不能被繼承

例1:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

}class vehicle//在class前面加上sealed就會把這個類變成封閉類,不能夠在作為基類

class car : vehicle//乙個類只允許有乙個基類;子類的訪問級別不能超越父類的訪問級別,但是可以跟父類訪問級別持平

例2:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

}class vehicle

public string owner

}class car : vehicle

//方案二

public car(string owner) : base(owner)

//為什麼要這樣寫?因為例項構造器是無法繼承的

public void showowner()

//class racecar : car//}

}

例3:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace mylib

//類成員的訪問級別是以類的訪問級別為上限的,不可能超越類的訪問級別

//public 為最公開級別,萬人輪;internal 只能在本專案裡面訪問這個屬性,無法再其他程式集訪問這個屬性;private只能在類體裡面訪問,可以繼承但是不能訪問

}public class car : vehicle

}public class c

}

例4:

類庫

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace mylib

protected void burn(int fuel)//這個方法不應該public,因為「開車的人不並不需要知道燃料是怎麼燒的」

//為什麼用protected?因為不想被外面呼叫,有希望能被子類呼叫(可跨程式集),這個時候就用protected

public void accelerate()

public int speed }//沒有set,唯讀屬性

}public class car : vehicle

}}//小結:protected和internal可以一起用,順序無所謂

//internal protected的意義:internal和protected是或的關係,表示既可以被它的派生類訪問,又可以被程式集當中的所有其他類類訪問

主程式

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using mylib;

}class bus : vehicle

}}

繼承(劉老師):繼承的本質是派生類已有成員的基礎之上對基類進行橫向或縱向上的擴充套件

ps:1.類成員只能越來越多,無法減少。所以要小心加入類成員以免造成汙染

2.名詞解釋

橫向:指的是對類成員的擴充

縱向:對類成員版本更新或者說重寫

二、成員的繼承與訪問

1.派生類對繼承成員的訪問

2.派生類對基類成員的訪問

3.構造器的不可繼承性

三、物件導向的實現風格

1.class-based,例如上面的例子,基於類的封裝、繼承和多型

2.prototype-based,基於原型的封裝繼承和多型

C 類成員訪問控制及繼承的訪問控制

公有型別成員定義了類的外部介面,在類外智慧型訪問類的公有成員 私有成員只能被本類的成員函式訪問,來自外部的任何訪問都是非法的,完全隱藏在類中,保護了資料的安全性 保護型別成員的性質和私有成員性質相似,其差別在於繼承過程中對產生的新類的影響不同,意義在於不想向外部暴露某個函式或者成員變數,但又想讓派生...

C 繼承 單個類的訪問控制

public 修飾的成員變數 方法 在類的內部 類的外部都能使用 protected 修飾的成員變數方法,在類的內部使用 在繼承的子類中可用 其他 類的外部不能被使用 private 修飾的成員變數方法 只能在類的內部使用 不能在類的外部 class parent 保護繼承 class child3...

C 類訪問控制及繼承

一 c 類的訪問控制有三類 public,protected和private。類訪問控制符 類成員可被哪些物件訪問 public 1 類的成員函式。2 類物件。3 友元。4 子類成員函式 protected 1 類的成員函式。2 友元。3 子類成員函式 private 1 類的成員函式。2 友元 二...