抽象類是帶有Abstract關(guān)鍵字的class,抽象類可以包含字段,屬性,普通方法,事件及特殊的抽象方法
成都創(chuàng)新互聯(lián)公司是一家網(wǎng)站設(shè)計公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:響應(yīng)式網(wǎng)站建設(shè)、高端網(wǎng)站設(shè)計、成都營銷網(wǎng)站建設(shè)。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗,以及在手機等移動端的優(yōu)質(zhì)呈現(xiàn)。成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運營、VI設(shè)計、云產(chǎn)品.運維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務(wù)。
接口是帶有interface關(guān)鍵字并封裝了對象一系列的行為,接口可以包含屬性,方法,但不能包含字段和委托。方法不包含具體實現(xiàn),不帶public類似的關(guān)鍵字。
public class ApplePhone { public int Id { get; set; } public string Brand { get; set; } public void System() { Console.WriteLine("IOS"); } }
public class Galaxy { public int Id { get; set; } public string Brand { get; set; } public void System() { Console.WriteLine("ANDROID"); } }
public class LumiaPhone { public int Id { get; set; } public string Brand { get; set; } public void System() { Console.WriteLine("WINDOWS PHONE"); } }
這個時候就會大量的冗余代碼,我們應(yīng)該建一個基類定義Id和Brand 這2個屬性,并定義一個抽象方法System(),為什么不定義虛方法,因為在這里每個子類的實現(xiàn)都不同的。所以最終我們應(yīng)該建一個抽象類,如下
public abstract class BasePhone { public int Id { get; set; } public string Name { get; set; } public abstract void System(); } 上面3個類繼承自BasePhone public class ApplePhone: BasePhone { public override void System() { Console.WriteLine("IOS"); } } public class Galaxy:BasePhone { public override void System() { Console.WriteLine("ANDROID"); } } public class LumiaPhone:BasePhone { public override void System() { Console.WriteLine("WINDOWS PHONE"); } } 手機還有玩游戲功能,這個時候我們不應(yīng)該在BasePhone加一個玩游戲的方法,因為玩游戲就是一種行為 除了手機能玩游戲,電腦,平板都能玩游戲,那么這個時候我們就應(yīng)該把玩游戲抽象成接口,而手機 則實現(xiàn)了這個接口。 //定義一個玩游戲的接口 public interface IGame { void Game(); }
public class LumiaPhone:BasePhone,IGame { public override void System() { Console.WriteLine("WINDOWS PHONE"); } public void Game() { Console.WriteLine("play WINDOWS PHONE games"); } }
其他二個子類也是同樣實現(xiàn)玩游戲功能,同樣手機還有上網(wǎng)等等功能,但上網(wǎng)并不是手機獨有的行為,所以我們可以增加一個IOnline接口,接口是可以實現(xiàn)多個的,而類只能繼承一個。