Objective-C和C 比较
时间:2022-02-08 12:45:01 | 来源:信息时代
时间:2022-02-08 12:45:01 来源:信息时代
单一继承:
Objective-C不支持多重继承,(同Java和Smalltalk),而C 语言支持多重继承。
动态:
Objective-C是动态定型(dynamicalytyped)所以它的类库比C 要容易操作。Objective-C在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。
C 跟从面向对象编程里的Simula67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。
在C 里,对象的静态类型决定你是否可以发送消息给它,而对Objective-C来说,由动态类型来决定。Simula67学派更安全,因为大部分错误可以在编译时查出。而Smalltalk学派更灵活,比如一些Smalltalk看来无误的程序拿到Simualr67那里就无法通过。
从很多方面来看,C 和Objective-C的差别,与其说是技术上的,不如说是思维方式上的。你是否想更安全而舍弃灵活性?Simular67学派的支持者声称既然程序设计出色何必再要灵活性(谎话!),而Smalltalk学派则辩称为了灵活可以容忍运行时多出错(也是谎话!)