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...