C 裡有個東東叫繼承

2022-08-22 18:30:15 字數 1468 閱讀 8472

學c#的時候,學到很多沒在別的語言裡見過的繼承手段。比如用base方法呼叫基類建構函式。這個好神奇,只要在子類建構函式後面加個base()就能呼叫基類的不同建構函式。話不多說,貼**!

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace baseclass_test

public  baseclass(int i)

public int getnumber()

}public class sonclass:baseclass

public sonclass(int i) : base(i)

static void main(string args)}}

上面**的執行結果是:

大家可以看到,通過base方法我輕易呼叫了兩個基類建構函式,但是用base的時候同樣陷阱重重。base方法只侷限在建構函式,例項方法和例項屬性訪問器中,而且靜態方法中是不可以使用base方法的。

接下來講乙個大家很熟悉的關鍵字--new,它能創造心得類方法,達到隱藏基類成員的目的。看看**吧

namespace new_test

public int work1;

}public class sonclass:bcclass

public new int work1;

static void main(string src)

}}實現如下:

使用new關鍵字時,呼叫的是新的類成員而不是已被替換的基類成員,這些基類成員稱為隱藏成員,如果將派生類的例項強制轉換為基類的例項,仍然可以呼叫隱藏類成員。

最後來看下老生常談的override方法,下面是乙個示例

namespace override_test

public virtual decimal calculate()

}public class saleem :em

public override decimal calculate()//重寫方法

static void main()}}

}**執行結果:

很簡單的例子,員工分正常員工和銷售人員,銷售人員要拿回扣咯,所以兩類人的工資計算方法當然不能一樣了,所以銷售人員類裡重寫這個方法。

同時要注意的是:override申明不能更改virtual方法的可訪問性,不能使用修飾符new,static,virtual或abstract來修飾override方法。不能重寫非虛方法或靜態方法。

有個表叫楊表(上)

楊氏矩陣在資訊學競賽中的應用 袁方舟 膜拜有感 前方高能,非戰鬥人員請撤離 都是很幹的數學概念 楊表 young tableaux 又叫楊氏矩陣,是乙個啥都能摻一腳的代數結構。為了方便討論,先來點定義。楊圖 令 lambda lambda 1,lambda 2,ldots,lambda m 滿足 l...

c 裡類的繼承

include stdafx.h include include using namespace std 繼承 復用 父類的指標可以指向孩子的物件 繼承過來的普通函式,如果建立物件的時候指標型別是什麼型別,那麼就執行什麼型別的函式 class ca public ca ca virtual void...

有個叫函式節流的東西

某些場景下,比如響應滑鼠移動或者視窗大小調整的事件,觸發頻率比較高。若處理函式稍微複雜,需要較多的運算執行時間,響應速度跟不上觸發頻率,往往會出現延遲,導致假死或者卡頓感。為了解決這個問題,我們只能通過減少執行函式的次數來提高響應速度。throttle和debounce是解決請求和響應速度不匹配問題...