c中new和override的區別

2021-09-24 15:13:02 字數 1328 閱讀 6617

1樓:匿名使用者

如果你用override,則無論呼叫的是a類還是b類中的test(),系統都會找到它實質類的test();

如果是用的new,則可以通過型別轉換呼叫到基類的test();

下面是override的情況:

a a = new a();

b b = new b();

a a1=new b();

a.test();//呼叫a中test();

b.test();//呼叫b中test();

a1.test();//呼叫b中test();系統會自動識別a1是b的例項

((a)b).test();//與上面相同下面是new的情況:

a a = new a();

b b = new b();

a a1=new b();

a.test();//呼叫a中test();

b.test();//呼叫b中test();

a1.test();//呼叫a中test();

((a)b).test();//與上面相同

2樓:匿名使用者

new 是替代原有的,override是在原由方法的基礎上增加**.在override中可以自己決定是否通過"base."+ 系統原來的方法名 執行系統原有的方法.

new中就完全是自己的**了

你上面的例子中應該呼叫b方法中的test方法

3樓:匿名使用者

new 是新建立,override是過載已經有的,常用與過載類的事件

c#中void與override區別是什麼

4樓:匿名使用者

void 指方法沒有返回值。

override是重寫,這是對父類

的一個定義好的方法的重寫。

例如:class newbase//定義一版個類}class anewbase : newbase}

5樓:匿名使用者

這兩個完全就不是一個道上的東西的。。

void 表示函式沒有任何返回值版,

而override則是表示重寫一個函權數的,這個多在類裡面用的比較多的。在類裡面進行函式的重寫的,然後實現另外的或者額外的功能的。。

6樓:匿名使用者

void 指方法的返回值。是無返回值的型別,

override是重寫,這是對類的操作,可以對方法的重寫。

7樓:匿名使用者

這兩個沒有可比性!實在要說的話也是overload與override的區別!這個網上太多了!面試的經典題

c中new到底有什麼用

區域性變數的儲存位置在棧內 vs下一個執行緒預設棧是1m 函式體結束就自動 new malloc 分配的空間在堆內,理論上是2g 如果不手動free delete,這個空間是不會被釋放的。如果要申請的記憶體比較大,就要用new,否則使用棧空間是不可能成功的。new 在堆中分配一塊記憶體空間,一般都需...

c 中的new是否能夠開闢連續的空間

如果想建立一個陣列,可以通過new的方式申請連續的空間用於存放陣列。但是如果在同一時間內連續呼叫new函式,申請的空間不是連續的。比如new int 100 vc 屬於什麼程式語言 vc 是微軟出的用於編寫c 的開發工具,使用它自帶的mfc庫,可以很簡單方便的寫出windows,視窗之類的程式.vc...

請教 C 中,在中new申請的記憶體用完不刪,會導致記憶體洩露嗎

先來進行分析抄一下 fucntion函式裡的 int p new int 100000 做的事情 1 申請了一 片記憶體int 100000 2 申請了了一個指標變數 p。同時p指向這片記憶體。在子函式結束以後,會做的事情 1 銷燬指標變數 p 注意 只是銷售了指標變數,並不會自動的 int 100...