學點設計模式0x1 物件導向基礎(2)

2021-09-10 04:19:15 字數 1555 閱讀 3752

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

1.良好的封裝能夠減少耦合

2.類內部的實現可以自由地修改

3.類具有清晰的對外介面

private void button2_click(object sender,eventargs e)
物件的繼承代表了一種『is-a』的關係,如果兩個物件a和b,可以描述為『b是a』,則表明b可以繼承a。繼承者可以理解為對被繼承者的特殊化,因為它除了具備繼承者的特性外,還具備自己都有的特性。

繼承定義了類是如何相互關聯,共享特性。繼承的工作方式是,定義父類和子類,或者叫做基類和和派生類,其中子類繼承父類的所有特性。子類不但繼承了父類的所有特性,還可以定義新的特性。

如果子類繼承於父類,第

一、子類擁有父類非private的屬性和功能;第二,子類具有自己的屬性和功能,即可以擴充套件父類沒有的屬性和功能;第

三、子類還可以以自己的方法實現父類的功能(方法重寫) 

表示繼承時子類可以對基類有完全訪問權,即用protected修飾的類成員,對子類公開,但不對其他類公開。

class cat

public cat()

private int shoutnum = 3;

public int shoutnum

set}

public string shout()

public cat(string name):base(name)

public string shout()

//"叫聲比賽"的按鈕事件

private void button4_click(object sender,eventargs e)

}

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

1.子類以父類的身份出現;2.子類在工作時以自己的方式來實現;3.子類以父類的身份出現時,子類特有的屬性和方法不可以使用

為了使子類的例項完全接替來自父類的類成員,父親必須將該成員宣告為虛擬的。這是通過在該成員的返回型別之前新增virtual關鍵字來實現。通常虛擬的是方法,但是其實除了字段不能是虛擬的,屬性、事件和索引器都可以是虛擬的。儘管方法可以是虛擬的,但是虛方法還是有方法體,可以實際做些事情。然後,子類可以選擇使用override關鍵字,將父類實現替換為它自己的實現,這就是方法重寫override,或者叫做方法覆寫。

class animal

}class cat : animal

public cat(string name) : base(name){}

public override string shout(){

string result = "";

for(int i=0;i不同的物件可以執行相同的動作,但要通過它們自己的實現**來執行。多型的原理是當方法被呼叫時,無論物件是否被轉換為其父類,都只有位於物件繼承鏈最末端的方法實現會被呼叫。也就是說,虛方法是按照其執行時型別而非編譯時型別進行動態繫結呼叫的,

物件導向設計模式基礎

首先 使用物件導向設計模式能夠使 易維護,可復用,可擴充套件,靈活性好 這是我們需要達到的目標 其次 如果想要達到這樣的目標,就需要在 的設計過程中,遵守以下的原則 顯示簡單的說明 1.開放封閉的原則 盡量對修改關閉,對擴充套件開啟 2.高內聚低耦合的原則 模組內部緊湊,模組之間耦合度較小 3.單一...

設計模式 物件導向基礎

物件導向,object oriented 物件是乙個自包含的實體,用一組可識別的特性和行為來標識。類就是具有相同的屬性和功能的物件的抽象的集合。注意 1.類名稱首字母急著要大些,多個單詞則首個字母大寫 2.物件公開的方法需要用 public 修飾符。補充 例項,就是乙個真實的物件。比如我們都是 人 ...

設計模式 設計模式概述 物件導向基礎

模式名稱 pattern name 助記名,如抽象工廠模式等 問題 problem 描述了應該在何時使用模式 解決方案 solution 效果 consequences 物件導向程式設計由物件組成,物件包括資料和對資料進行操作的過程,過程通常稱為方法或操作。物件在收到客戶的請求 或訊息 後,執行相應...