繼承與多態(六)

繼承

1.繼承

a。.直接在類的后面加上冒號“:”后面跟基類,就該類就繼承了基類的一切特性了。

b。private類不能被繼承,只有public、protected類能被繼承。

c。private類不里面所有的屬性和方法都不能被外界訪問,只有他自己可以。

d。public類可以被外界訪問和繼承。

e。protected類可以被繼承,外界不能訪問,但是子類可以訪問。

f。c#不能多重繼承,就是說一個類只能繼承一個類,不能同時繼承多個類。要實現多繼承就需要用接口來實現。

g.對于繼承來說。不允許派生類的訪問性比其基類的更高。也就是說,內部類可以繼承于一個公共類,但公共類不能繼承一個內部類。

注:1.訪問性相同的類,可以相互繼承。

2.系統默認的是內部類(interior關鍵字修飾),所以我們在定義基類時,需要加上public或protected

h.如果指定了基類,它必須緊跟在繼承類冒號的后面,之后才是指定的接口。如果沒有指定基類,則接口就跟在冒號的后面。

注:如果一個類即實現某個接口又繼承某個類,那么所繼承的類的類名要寫在最前面,接口跟在繼承類的后面,如:public class 普通類:基類名,接口1,接口2

不能寫成public class 普通類:接口1,基類名,接口2

?

?

2.多態(覆載)

???? 多態是指兩個或多個屬于不同類的對象,對同一個消息做出不同的響應的能力。

實現多態時必須在將該方法定義成虛函數,用virtual定義虛函數。在重寫虛函數時還要在重寫的前面加上override(覆載)來申明一個覆載方法,然后用base關鍵字來告訴程序方法是基類的方法。

public class person

??? {

??????? private string name;

??????? private string adress;

??????? //這里和繼承哪里的一樣,這里就省了

public virtual void print()//用virtual將print()方法定義為虛方法(虛函數);

??????? {

3行: ????Console.WriteLine("姓名: " + Name + "\n" + "地址" + Adress);

??????? }

}

public? class Student:person

??? {

??????? private string studentId;//定義一個字段

??????? //這里是studentId的訪問器,此處忽略

????? public override void print()//用override來重寫一個方法

?? ?// public new void print() //用new來防止隱藏了父類的方法,但注意的是在客戶端需要用基類的類名來實例化子類的對象。

??????? {

2行:?????? base.print();????? //用base關鍵字來告訴程序這里的print()是基類中的,當前這個print()

4行:?????? Console.WriteLine("學號" + StudenId+"\n");

??????? }

}

class Program

??? {

??????? static voidMain(string[] args)

??????? {

??????????? Student s = new Student();

??????????? s.Name = "報文";

??????????? s.Adress = "云南農業大學";?????????

? 1行:? ???s.print();//調用自己類中的方法

????????? /* //用基類名來實例化子類。如果調用了子類中用new方法的話,那么就不會覆蓋基類中的方法。

Person? p=new Program();

?????? ????p.print();

*/

?????????? Console.Read();

??????? }

??? }

步驟說明:執行到第1行時,當然是先調用自己類中的東西,如果自己類中沒有,然后才會到基類中去找的,所以執行第1行后他調用了自己類中的print(),然后執行第2行,第2行調用基類中的print(),調用完后回來繼續執行第4行。

說明:基類中有一個print()方法,子類中也有一個print()方法,在基類方法前面加上virtual表示定義了一個虛方法,然后在子類中通過override來覆載基類中的print()方法,這也就是重寫了。然后通過base來調用基類中的print()。

注:1.通過這樣的方式就可以省去既要調用基類中的方法又要調用自己類中的方法,如果子類中的方法只是想在基類的方法中擴大或縮小或其他一些和基類中的方法有關的操作就不用重新再定義了。

如,基類中的方法是Num(){? return 3 ;} 在子類中的Num(){ return base.Num()*3}

就不在重新寫了,直接改變調用基類中的方法來改變。

2.在重寫方法或屬性的前面加override是覆載基類的方法或屬性,如果用new的話,然后在創建對象時用基類來創建子類的對象,那么基類中的方法或屬性就不會被覆蓋掉。

轉載于:https://www.cnblogs.com/green0818/archive/2012/06/06/2538830.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

標記偏見_如何(巧妙地)扭曲視覺效果以支持您的偏見敘事

標記偏見Data is important — it is the logical justification for world-changing decisions. Unfortunately, arrays of numbers don’t tell as interpretable a story as a picture does, providing an insatiable need for data visualizations.數據很重要-這是改變世界…

高瓴投資,頂配創業團隊,dora 誠招前端 / Flutter

dora 是一個可以跨越設計稿,直接生成應用的新一代設計工具。讓任何 Creator 都能輕松構建個性化的網站和應用,無需編寫一行代碼。通過自主研發的全新技術,我們為用戶打造了完全自由度的設計與開發體驗,足以滿足任何復雜場景的個性…

獵鷹spacex_SpaceX:簡單,美觀的界面是未來

獵鷹spacex重點 (Top highlight)A photo has been floating around the internet showing how the interior of the new Dragon spacecraft differs from the Space Shuttle. The difference is staggering, but not entirely suprprising. After all the Shuttle started oper…

object的classid收集

比如&#xff1a; wbbrowser控件 <OBJECT idWB classidCLSID:8856F961-340A-11D0-A96B-00C04FD705A2 VIEWASTEXT></OBJECT> 畫圖控件 <OBJECT idSGrfxCtl1 classidclsid:369303C2-D7AC-11D0-89D5-00A0C90833E6 ></OBJECT> 上下滾動條控件 <OB…

如何高效學習前端新知識,拓展視野,我推薦

技術日新月異&#xff0c;發展迅速&#xff0c;作為一個與時俱進的互聯網人&#xff0c;需要不斷地學習擴寬視野。今天為大家推薦幾個技術領域中出類拔萃的公眾號&#xff0c;它們的每一篇推文都值得你點開&#xff01;1前端開發愛好者學習路線 數據結構算法 前端進階「前端開發…

開發交接文檔_為開發人員創造更好的設計交接體驗

開發交接文檔It’s 2020. We’re supposed to have flying cars and space travel. We should at least have our process for design handoff nailed down at this point.現在是2020年。我們應該有飛行汽車和太空旅行。 在這一點上&#xff0c;我們至少應該確定我們的設計移交…

同步器之Exchanger

類java.util.concurrent.Exchanger提供了一個同步點&#xff0c;在這個同步點&#xff0c;一對線程可以交換數據。每個線程通過exchange()方法的入口提供數據給他的伙伴線程&#xff0c;并接收他的伙伴線程提供的數據&#xff0c;并返回。 當在運行不對稱的活動時很有用&#x…

?Cookie 從入門到進階:一文徹底弄懂其原理以及應用

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列Cooki…

ui設計師常用的設計工具_2020年應該使用哪個UI設計工具?

ui設計師常用的設計工具重點 (Top highlight)It’s 2020, the market today is saturated with UI design tools. Ever since Sketch app came out with its sleek, simple, and efficient tool to craft user interface design, many companies have followed suit to take a …

Ajax拖放頁面元素(圖片)

最近了解了一點YUI的控件知識.先做個Ajax拖放頁面元素(圖片)以便學習參考. 現在有一些網站如QQ空間,都允許用戶自定義模塊,可以任意拖動模塊到各個地方去.YUI在這一方面做得比較好.下面以一組圖片的方式來說明如何運用Ajax拖放頁面元素: 第一步:在<head></head>標簽…

你不知道的vscode之空間控制

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列王志遠…

正則表達式說明

參考地址&#xff1a; 正則表達式說明 正則表達式全部符號解釋轉載于:https://www.cnblogs.com/s-bridge/archive/2012/06/26/2564396.html

lynda ux_UX心態

lynda uxI have had the pleasure of training and mentoring several UX people at the beginning of their careers.在職業生涯的初期&#xff0c;我很高興接受培訓和指導。 Whatever your background or experience, I’ve found repeatedly that there are some key miles…

什么 Leader 值得追隨?

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。目前建有江西|湖南|湖北 籍 前端群&#xff0c;想進群的可以加我微信 ruochuan12 進群。歷…

pico8 掌機_使用Pico-8構建自己的復古游戲

pico8 掌機An example of the kinds of pixel animations people make in Pico-8.人們在Pico-8中制作的各種像素動畫的示例。 Are you a fan of old school video games? What if I told you there’s an NES-style game devkit with the sound/sprite/code tools all built i…

C#中Brush、Color、String相互轉換

1、String轉換成Color Color color (Color)ColorConverter.ConvertFromString(string); 2、String轉換成Brush BrushConverter brushConverter new BrushConverter(); Brush brush (Brush)brushConverter.ConvertFromString(string); 3、Color轉換成Brush Brush …

實用 JavaScript 調試技巧

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

數據挖掘 點擊更多 界面_6(更多)技巧,可快速改善用戶界面

數據挖掘 點擊更多 界面重點 (Top highlight)Creating beautiful, usable, and efficient UIs takes time, with many design revisions along the way.創建漂亮&#xff0c;可用和高效的UI需要花費時間&#xff0c;并且在此過程中進行了許多設計修訂。 Making those constant…

簡單的ASP.NET無刷新分頁

1、新建一個分頁存儲過程&#xff1a; CREATE procedure [dbo].[P_Pager] (PageNumber int, PageSize int) as declare sql nvarchar(4000) set sql select top Convert(varchar, PageSize) * from T_Test where [type]1 and id not in (select top Convert(…

Koa在實際的業務場景中,路由如何做分割?【文末留言送書】

大家好&#xff0c;我是若川。文末留言送書&#xff0c;具體規則文末說明。另外為了鼓勵大家多寫源碼共讀筆記&#xff0c;我會在寫了5次及以上筆記的作者群里也抽獎送這本書。以后也會有更多福利傾斜。導讀&#xff1a;Koa是一個Node框架&#xff0c;在Node開源社區中&#xf…