VR開發入門教程23:面向對象之繼承
來源:
奇酷教育 發表于:
繼承面向對象中的兩個重要概念:抽象和分類。抽象和分類是人們認識世界的基本方法:抽象是將現實世界中客觀存在的事務映射到意識中的一種方
繼承
面向對象中的兩個重要概念:抽象和分類。
抽象和分類是人們認識世界的基本方法:
抽象是將現實世界中客觀存在的事務映射到意識中的一種方法。
分類是指確定這些抽象到意識中的概念之間的關系。
這些關系的基本形式包括一般到特殊和整體與局部。
在面向對象中,一般到特殊的關系用繼承(Inheritance)表示;整體與局部的關系用組合(composition)表示。
繼承的概念
繼承是由已有的類創建新類的機制。
由繼承得到的類稱為子類(派生類),被繼承的類稱為父類(超類)(基類)
繼承的原則
子類繼承父類的成員變量和成員方法
子類不繼承父類的構造方法,能夠繼承父類的析構方法
子類不能刪除父類的成員,但可以重定義父類成員
子類可以增加自己的成員
繼承的作用
實現軟件可重用的重要方式
增強軟件可擴充性
提高軟件的可維護性
繼承定義
定義繼承的類
聲明子類
[<修飾符>] class<子類名> :(extends) <基類名>
Object類
C#語言中所有的類都是Object的直接或間接子類。
子類對象對父類成員的訪問權限:
子類對父類的私有成員(private)沒有訪問權限
子類對父類的公有成員(public)和保護成員(protected)和內部成員(internal)具有訪問權限
隱藏
子類中可定義與父類成員同名的成員
此時父類的成員被隱藏
注意:程序中會出現警告 警告不影響執行
消除警告的方法 在隱藏的屬性或方法上追加new關鍵字
Base
base用來引用當前對象的父類,用base可以實現對父類成員的訪問。
訪問父類被隱藏的成員變量,如:
base.variable;
調用父類中被覆蓋的方法,如:
base.Method([paramlist]);
調用父類的構造函數,如:
:base([paramlist]);
注意:base維系了整個繼承關系
向上轉型
子類和父類具有is a的關系,例如對于父類“人”和子類“學生”,我們可以說“學生”是“人”。因此,可以使用父類的引用指代子類的實例,這種情況被稱為Upcasting。上轉型對象可以訪問子類繼承或覆蓋的成員;不能訪問子類中新增的成員。上轉型對象可以被重新賦值為子類實例,這時它又重新可以訪問子類中新增成員。