OOP即面向對象編程的基礎是類或者說是對象,我想問一下,這些類或者對象是所有操作系統預留的接口嗎?這些對象在操作系統層次中的運行機理是什麼?
OOP的本質是提供編程語言更高的抽象層次,而將諸如類型匹配,判斷方法是否可以執行,代碼注入,用分支語句改變行為等等這些低層次的編碼由編譯器去實現,簡化編程復雜度,減少錯誤。
OOP的實現機制有很多。比如早期的C++語言,通過將代碼展開得到等價的C語言,然後用C語言編譯器編譯。即便現在的C++語言,也有這樣的影子,比如this指針、虛擬表等等。而另外一些語言,比如Java或者C#,它們在虛擬機層面就支持面向對象,虛擬機通過JIT再轉換成非面向對象的機器代碼執行,而編譯器的輸出結果仍然保留了對象信息。還有的語言,在解釋器層面實現的面向對象,比如Ruby、Python、Javascript。