new關鍵字對類成員的阻斷

2022-03-05 19:43:03 字數 692 閱讀 8544

昨天終於對new關鍵字對類成員的阻斷作用有了比較清晰的認識,「對類成員的阻斷」是王濤大哥在其作品《你必須知道的.net》的說法,昨天在園裡看到一位前輩戲稱之為「封印咒術」,我感覺這個說法很貼切。比如sons類繼承自fathers類,在sons中對fathers的虛方法dovirtualwork()實現了封印,則以後繼承自sons的類就無法繼承fathers的dovirtualwork()方法。**如下:

code

public

class

fathers

public

virtual

void

dovirtualwork()

}public

class

sons : fathers

}public

class

grandsons : sons

public

class

sonson : sons

class

program

}執行結果:

son.dovirtualwork()

son.dovirtualwork()

father.dovirtualwork()

father.dovirtualwork()

son.dovirtualwork()

所以,在類的設計中盡可能不用new阻斷類成員。

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

12 對 關鍵字 new 的過載

目標 運用在管理在堆上申請空間的管理 file 是全域性巨集 字串 funcdname 字串 line int include using namespace std void operator new size t size,char filename,char funcname,int line...

手寫 new 關鍵字

function mynew func,args 新物件原型指向建構函式原型物件 obj.proto func.prototype 將建構函式的this指向新物件 let result func.obj,args 根據返回值判斷 return result instanceof object res...