物件導向三大基本特徵:封裝,繼承,多型
一、類(物件宣告的三種方式:以普通基類身份宣告的變數並用基類物件賦值,以普通基類身份宣告的變數並用子類物件賦值,以子類身份宣告的變數並用子類物件賦值,抽象類宣告的變數必須由子類進行賦值(抽象類不能new))
1、類的分類:普通基類,抽象基類(abstract):抽象類天生(public)是給人繼承的,不能new(宣告物件),純抽象類(介面)
2、基本概念
4、類的成員分類:
5、抽象類特別注意事項:繼承抽象類的子類必須實現抽象類的抽象成員,就是必須使用override(重寫)關鍵子修飾基類同名抽象成員
6、對繼承概念的認識:子類繼承了基類,在程式入口呼叫方法時,子類的建構函式繼承了基類的建構函式。以子類身份宣告的變數並以子類物件賦值,當呼叫子類中成員時,按照類的訪問規則,此時我們可以發現,基類通過子類繼承的建構函式,獲得了具體的成員
二、介面
inte***ce宣告介面,介面是純抽象類,不能new。介面定義一些成員,不是用public關鍵字修飾,預設就是共有的介面成員是純虛成員
主程式中呼叫介面時注意:
介面的實現:實現介面的類必須實現介面成員
介面的顯示實現和隱式實現:當類實現單介面時一般使用隱式實現,實現多介面特別是多介面中定義了同名成員時要使用顯示實現(加介面名字首)
£子類訪問基類:在子類的內部可以訪問基類共有成員和受保護成員,在子類的外部。子類物件只能訪問基類的共有成員(類的外部只能訪問類的共有成員)
三、繼承
子類繼承基類,基類的建構函式:宣告子類物件時,子類的建構函式要先給基類建構函式傳參,基類建構函式先於子類建構函式執行
四、函式的過載:乙個類中,函式名相同簽名不同的方法稱為函式的過載,簽名指:返回型別,引數型別,引數數量,引數的順序
五、區別普通基類虛成員和抽象基類抽象成員
六、抽象基類多型的理解:子類繼承抽象基類使用基類作為乙個大的主題,使用引擎類對基類的訪問,實現對每個繼承基類子類成員的呼叫(聯想動物**)
七、介面(純抽象類)和抽象類的異同:
八、介面實現多型(多變性、靈活性):語法級別優化**
宣告:以下****現的中文全是本人自稱為新時代「愛因斯坦」的東北老師的作品æ
1、宣告介面,實現介面的類
1 namespace oodemo2 9 //實現介面的類必須實現介面成員 10 public class gun : iweapon 11 16 } 17 18 public class sword : iweapon 19 24 25 } 26 27 public class tank : iweapon 28 33 } 34 35 public class xiaomugun : iweapon 36 41 } 42 }
2、使用乙個「引擎類」:engine作為中間層以介面型別的變數為引數
1namespace
oodemo211
}12 }
3、使用實現了介面的類作為引數,呼叫各自實現介面成員的功能
1namespace
oodemo213
14public
void
fire()
1518
}19 }
九、抽象類實現多型:方式和介面實現多型的相似,一下直接書寫舉例**(介面和抽象類實現多型的異同沒弄明白)
問題:介面和抽象類都可以實現多型,只需要有乙個就可以了,要麼介面要麼抽象類,為什麼兩個都存在?那麼那個更好些?
1、宣告三個基礎類繼承抽象類animal
抽象類:
namespace
oodemo
}基礎類:
namespace
oodemo
}class
dog : animal
}class
mouse : animal
}}使用引擎類
namespace
oodemo
}}呼叫
namespace
oodemo
}}
靜態類,靜態方法
物件導向 基本概念
物件 由其責任定義的,能夠自己負責自己,從而簡化了使用物件的控制程式的任務。將責任轉移到更區域性的層次。類 class 根據物件所具有的責任定義物件的型別。責任 行為或狀態,這些分別是由方法和或資料實現的。具體類 concrete cass 實現抽象類某一特定型別行為的類,具體類是乙個概念特定不變的...
物件導向基本概念
物件導向是相對面向過程而言 物件導向和面向過程都是一種思想 面向過程強調的是功能 行為 物件導向 將功能封裝進物件,強調具備了功能的物件 物件導向是基於面向過程的 類的概念 具有相同屬性的一類事物 物件的概念 就是對這乙個類的具體的描述 比如人類就是抽象的類,具體的某乙個人就是物件,對人這個類的具體...
C 物件導向程式設計基本概念
繼承與派生 都是針對同一種技術現象的不同角度說法 子類繼承父類,父類派生出子類 繼承 乙個新類從已有的類那裡獲得其已有特性,這種現象稱為類的繼承。派生 從已有的類產生乙個新的子類 或稱為基類和派生類 多重繼承 乙個派生類有兩個或多個基類。派生類是基類的具體化,而基類是派生類的抽象。注 多重繼承的構造...