兩道面試題目 關於new和override的

2022-01-11 06:50:50 字數 1090 閱讀 7473

這兩個關鍵字的含義很容易理解,但是遇到下面的題目,你不見得可以快速寫出正確答案,不信就試下。

1  new和override的區別

看**

public abstract class a 

public virtual void fun() 

}

public class b: a 

public new void fun() 

public static void main() 

}這段**的輸出是什麼?

基本原理:override是對基類方法的重寫,new是對基類隱藏派生類的方法。

如果用型別呼叫它本身的方法,沒有區別

比如a a=new a();  a.fun(); 

b b=new b();  b.fun();

這樣的呼叫,和呼叫一般的成員方法一樣,結果是它們自己的方法的輸出。

如果通過基類的引用去呼叫方法,new和override的區別就出來了

override能找到物件的真正型別中定義的方法,而new只是去找型別定義中的方法

結果如下圖

2  virtual 和override

**如下

public class a  

public void fun2(a a)  

}

public class b : a  

public static void main()  

}

這段**也很怪,頭都看暈了。

結果如下

有時候寫程式寫在這樣,要花費很大力氣去仔細看結果,不知道是倒退還是進步.

還有下面一道題目,你肯定會頭暈的

型別初始化器的呼叫時機

兩道SQL面試題目

在面試過程中多次碰到兩道sql查詢的題目,一是查詢a id,name 表中第31至40條記錄,id作為主鍵可能是不是連續增長的列,完整的查詢語句如下 select top 10 from a where id select max id from select top 30 id from a or...

兩道SQL面試題

第一是.關於加班時間的問題 公司規定一周內最多只能加班和12個小時,多餘的要去掉,去掉的規則是 某天加班超過1h的才能去,而且是依次大致平均的去,最小單位是1小時 舉例 日期 工號 加班小時 周一 a001 6 周二 a001 2 週三 a001 1 周四 a001 5 周五 a001 7 共計加班...

兩道概率面試題

問題一 一根一公尺長的繩子,隨機斷成三段 求最短的一段的期望長度以及最長的一段的期望長度。分析 這道題實際是一道純粹的概率題,沒有太多技巧。自己有推導,但是概率論忘得差不多了,退出來的概率有點詭異 以後補充一下知識,再推導。先放一下 陳利人 給出的答案吧,比較簡略 有時間,我會補充乙個詳細的。問題二...