物件導向再理解

2021-07-23 04:09:22 字數 1408 閱讀 2851

最近在學習設計模式,就對物件導向部分的知識進行了一下總結,之前對很多知識不理解有些細節也沒有注意到,這次來說相對好一點,下次可能還會有新的理解。

物件導向三大特性:封裝、繼承、多型;

每個物件都包含它能進行操作所需要的所有資訊,物件不必依賴其他物件來完成自己的操作。

優點:1、解耦合   2、類內部可以自由修改  3、類具有清晰的對外介面

理解:類就相當於我們的房子,室內的裝飾和擺設只能被室內的居住者欣賞和使用,擺設可以隨意地改變不影響其他人,房子有門窗,供人進出以及流通空氣。

繼承定義了父類和子類,稱作基類和派生類;

特點:1、子類擁有父類非private的屬性和功能;

2、子類具有自己的屬性和功能,即子類可以擴充套件父類沒有的屬性和功能;

3、子類可以以自己的方式實現父類的功能(方法重寫);

理解:小貓咪咪和小狗旺財都有名字屬性和叫的方法,在**中我們發現除了cat和dog不同和「喵」「汪」不同,其他一模一樣,因此我們可以建立乙個父類animal類,把相同部分放到animal中,讓小貓和小狗去繼承animal類。

優點:1、避免了重複的**

2、修改和擴充套件比較容易

缺點:父類變,子類必須改變,是一種強耦合。

注意:子類可從父類繼承(方法、域、屬性、事件、索引指示器),構造方法不能被繼承,只能呼叫,可以用base關鍵字。

不同的物件可以執行相同的動作,但要通過它們自己的實現**來執行。

特點:1、子類以父類的身份出現

2、子類在工作時以自己的方式來實現

3、子類以父類的身份出現時,子類特有的屬性和方法不可以使用

理解:京劇演出的例子,父親生病不能出演,現在兒子代替父親出演,以父親的身份出現是以自己的理解表演,代替父親上場時不能表演出自己的絕活。

c#允許把類和方法宣告為abstract,即抽象類和抽象方法。

抽象類特點:

1、抽象類不能例項化

2、抽象方法必須被子類重寫

3、類中包含抽象方法,那麼類必須定義為抽象類。

介面:介面把隱式公共方法和屬性組合起來,以封裝特定功能的乙個集合。

特點:1、 一旦實現了介面,類就可以支援介面所指定的所有屬性和成員

2、宣告介面和宣告抽象類完全相同,不提供介面中任何成員的執行方式。

3、類必須要實現介面中的所有方法和屬性

區別:1、抽象類可以給出一些成員的實現,介面不包含

2、抽象類的抽象成員可被子類部分實現,介面的成員要全部實現

3、乙個類只能繼承乙個抽象類,但可以實現多個介面

4、抽象類是對類的抽象,介面是對行為的抽象

5、抽象類是從子類中發現公共的東西,泛化出父類,子類繼承父類,介面根本不知道子類的存在。

總結:這幾天講了幾個模式,把uml圖的幾種關係和物件導向的知識結合起來,設計模式基本上就可以理解了,然後向**轉換也就變得容易了,還有進步的空間,加油!

物件導向再理解

工作都兩年了,一直在用物件導向,可對物件導向的概念還是一直很模糊,沒有清晰深入的理解和認識,所以決定今天再整理複習一下。物件導向的主要思想 類,物件,繼承,封裝,多型,抽象。其中繼承,封裝,多型,抽象為物件導向的四大特徵。具體細節不講 這些概念原來在面向過程中都是沒有的,這也是物件導向和面向過程的主...

理解物件導向

三個基本特徵 封裝,繼承,多型 封裝 將物件的實現細節隱藏起來,然後通過一些公用方法來暴露該物件的功能 使用訪問控制符 private default protected public private 當前類訪問許可權 default 包訪問許可權 protected 包 子類 public 公共訪...

理解物件導向

要理解物件導向。則要知道類和物件的關係。類是具備某些共同特徵的實體的集合 把資料和對資料的操作方法放到一起,相互依存的集合就叫做物件。物件的抽象是類,類的具體化就是物件,也可以說類的例項是物件。比如在現實世界中,人類就是乙個類,具體到實體的某乙個人,這個人就是人類這個類中具體化的乙個物件。而這個人的...