问题:Object-C有私有方法吗?私有变量呢?多重继承?
①objective-c – 类里面的方法只有两种, 静态方法和实例方法.
在Objective‐C中,所有实例变量默认都是私有的,所有实例方法默认都是公有的
②这似乎就不是完整的面向对象了,按照OO的原则就是一个对象只暴露有用的东西. 如果没有了私有方法的话, 对于一些小范围的代码重用就不那么顺手了. 在类里面是可以声名一个私有方法的,即延展。
③即OC中有私有变量:private修饰。OC中没有设计私有的方法。通过延展在实现文件里面定义方法作为私有的方法。但是这不是真正意义上的私有方法。(注意类目和延展的区别)
④无多继承:所有类都是NSObject的子类,通过protocol委托代理来实现多继承的效果(协议定义的方法不一定都要实现,@required下的方法必须实现,而java中的接口方法必须都要实现,这点上还是有区别的)
⑤代码示例:
@interface Controller : NSObject { NSString *something; }
- (void)thisIsAStaticMethod;
– (void)thisIsAnInstanceMethod;
@end
@interface Controller (private) -
(void)thisIsAPrivateMethod;
@end