學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是解決請求和響應速度不匹配問題...