第3課:現代面象對象的程式設計

來源:互聯網
上載者:User
封裝對象的原理:

一、什麼是封裝?封裝的好處?

   把類的內部隱藏引來
   良好的封裝能夠減少耦合;
   類內部的實現可以自由地修改;
   類具有清晰的對外介面 

二、實現:

1.訪問限制符來實現
public;protected(類內部及其子類);internal(同一個assembly);private(類內部)
預設:private 
protected internal  = protected + internal(同一項目,子類可以訪問基類)

2.

屬性和索引器也用來封裝類的細節,並提供公用介面給該類的使用者 繼承性
1.衍生類別:基類
2.C#只支援單繼承,多繼承是指一個子類有多個父類,若要實現多繼承要使用介面
3.防止繼承:public sealed class XX4.衍生類別可以調用基類的方法: base基類

1 public class Account
2 {
3 public double balance;
4 public bool Withdraw(double amt)
5 {
6 balance -= amt;
7 return true;
8 }
9 } 衍生類別

1 public class CheckAccount:Account
2 {
3 public bool Withdraw(double amt)
4 {
5 if(amt<= base.balance)
6 return base.Withdraw(amt);
7 else
8 return false;
9 }
10 }

何時使用繼承性
1.代碼重用
2.設計重用(公有的欄位和方法放在父類,私人的放在子類)
3.經驗而言(A是由B繼承來的,則可以說A IS a B)

多態性  

同一操作作用於不同的對象,可以有不同的解釋,產生不同的執行結果,這就是多態性


編譯時間多態(overload 重載),運行時多態(override 覆寫)

overload

位置:存在於有繼承關係的類中
方法名:必須相同
參數列表:必須不相同
傳回值:可以不相同

override

位置:存在於同一類中
方法名:必須相同
參數列表:必須相同
傳回值:必須相同

virtual

若在子類中要覆寫父類中的方法,則父類的方法必須為虛擬方法

abstract

父類中只有抽象方法的聲明,實現在子類中
若類中存在一個抽象方法,則類必須聲明為抽象類別(抽象類別不常用,用介面)

介面
1.介面為類提供藍圖(介面的目的就是搭建一個架構,等待實現)
2.介面只提供定義(永遠是public,只有方法的定義沒有實現【這方面和抽象方法一樣】)
3.實現介面的資料類型必須提供介面成員的實現
4.介面本身可以從多個基底介面派生
介面和抽象類別的比較:
相同點:
1.都是只有方法的定義,沒有實現
2.就像子類繼承了父類,則必須提供父類抽象方法的實現一樣;若一個類繼承了介面,則必須提供方法體來實現
如:public class admin_user:Iadmin_user 表示類admin_user提供Iadmin_user中方法的實現

不同點:
1.介面裡方法永遠是public的
2.介面中只有方法的定義,而抽象類別中可以有一般的方法的定義和其它類成員的定義:如屬性、欄位 
3.類只支援單繼承,而介面可以實現多繼承 

介面

public interface IAccount
{
void Method1();
string Method2(int x, int y);
...
}實作類別

Public class InsuranceAccount : IAccount
{
void Method1()
{

}
string Method2(int x, int y)
{

}
}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.