Interface和Object的關係

來源:互聯網
上載者:User

    在.NET世界裡,我們常常聽到的一句話莫過於“System.Object是一切類型的根,是所有類型的父類”,以至於我在《你必須知道的.NET》8.1節 以“萬物歸宗:System.Object”這樣的title為System.Object授予至高榮譽。所以,基於這樣的觀點就有了下面這句“介面是否也繼承於System.Object?”,事實上這正是今天在技術群裡小小討論的一個插曲。

    以上摘自《你必須知道的.NET》作者Anytao的博文“[你必須知道的.NET]第二十七回:interface到底繼承於object嗎?”。

    下面是我的理解:

萬物歸宗System.Object。但Interface不是“物”,是契約,是規則,是虛的思想,不是實實在在的"物“。類似萬有引力定律一樣,是抽象出來的思想,不能歸為物體。
OK,IObjectable obj = new MyObject(); 其實是執行個體化了一個繼承自System.Object的具體對象,為啥?因為你用的是class MyObject。class關鍵字就表明了其肯定繼承System.Object,是個實物。
而繼承自IObjectable介面,僅僅是符合其契約和規則,符合協定的定律而已。照規矩辦事,但規矩本身不是物,是抽象思維。
另外,interface關鍵字與class關鍵字代表的含義不同哦!你用class,預設繼承System.Object。而用interface,你找不到System.Object痕迹。
因此,這個結論很簡單:interface本身不繼承System.Object,但其具體的實現(因為使用class關鍵字)肯定繼承System.Object,也就是樓主的結論2。
大家想想:數學定律,萬有引力定律等等能算“物”嗎?還是這些是客觀存在的但沒有任務物體附屬的規律呢?

 

    感覺自己回答的蠻好的。哈哈……記錄一下。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.