亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一道關于類的繼承的面試題

一道關于類的繼承的面試題

LEATH 2018-12-05 14:04:22
class A {        public A() {            Print();        }        public virtual void Print() { }    }    class B : A {        int x = 1;        int y;        public B() {            y = 2;        }        public override void Print() {            Console.WriteLine("x=" + x + " y=" + y);        }    } 這道面試題如上,問題是當實例化B的時候會輸出什么?  我對繼承懂的還不是很清楚,忘高手幫忙排憂解惑下:  我知道在B實例化的時候首先調用基類A的構造方法,而A的構造方法被B類重寫過了,但是在重寫的方法里面調用了2個B類的字段x和y,x=1是肯定沒問題的,因為x已經被初始化了,但是y沒有被初始化,所有y應該是null吧,因為在A類調用構造方法Print()函數的時候B類的構造函數還沒有執行,我面試的時候就想這個應該會拋出異常吧,但是我后來測試下發現結果是x=1,y=0  不知道這個y=0是怎么回事呢?難道是編譯器默認的給重寫過的方法里面不認識的字段自動初始化嗎?  還有希望大俠們告訴小弟關于繼承應該注意哪些東西,或者推薦些好的文章書籍之類的.  感激不盡!!!
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 271 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號