Objective-C和C 比較
時(shí)間:2022-02-08 12:45:01 | 來源:信息時(shí)代
時(shí)間:2022-02-08 12:45:01 來源:信息時(shí)代
單一繼承:
Objective-C不支持多重繼承,(同Java和Smalltalk),而C 語言支持多重繼承。
動(dòng)態(tài):
Objective-C是動(dòng)態(tài)定型(dynamicalytyped)所以它的類庫比C 要容易操作。Objective-C在運(yùn)行時(shí)可以允許根據(jù)字符串名字來訪問方法和類,還可以動(dòng)態(tài)連接和添加類。
C 跟從面向?qū)ο缶幊汤锏腟imula67(一種早期OO語言)學(xué)派,而Objecive-C屬于Smalltalk學(xué)派。
在C 里,對(duì)象的靜態(tài)類型決定你是否可以發(fā)送消息給它,而對(duì)Objective-C來說,由動(dòng)態(tài)類型來決定。Simula67學(xué)派更安全,因?yàn)榇蟛糠皱e(cuò)誤可以在編譯時(shí)查出。而Smalltalk學(xué)派更靈活,比如一些Smalltalk看來無誤的程序拿到Simualr67那里就無法通過。
從很多方面來看,C 和Objective-C的差別,與其說是技術(shù)上的,不如說是思維方式上的。你是否想更安全而舍棄靈活性?Simular67學(xué)派的支持者聲稱既然程序設(shè)計(jì)出色何必再要靈活性(謊話?。?,而Smalltalk學(xué)派則辯稱為了靈活可以容忍運(yùn)行時(shí)多出錯(cuò)(也是謊話?。?br>