It All Begins at the Root
父类中成员变量只有声明在@interface中才能被子类继承,如下图所示:
如果子类想去访问父类@implementation中的成员变量,就应该使用它们的存取器。
同样,父类的方法,包括实例方法和类方法,也能被子类继承。
Extension through Inheritance: Adding New Methods
self.width也可以写成[self width]。
myRect.origin.y可以写成[[myRect origin] y]。
The @class Directive
这是Objective-C里面特有的指令,其作用相当于C++中的前置声明式,意思就是说,你用了这个指令,就不用去包含你要用到的类的声明式所在的头文件了,它的作用是告诉编译器某个东西是个类而已。
其用法如下所示:
它比包含头文件的方式高效,因为后者必须要加载头文件,并且还要处理正各头文件。
如果你想使用类中的成员变量和成员方法,你还是要#import那个类所在的头文件。
OverridingMethods
与传统的C++不同,Objective-C允许在@implementation中给成员变量初始化,如下图所示:
子类覆盖父类的方法和C++是一样的,所以在这里闲话少叙。
AbstractClasses
Objective-C也是有抽象类的,它通常作为提供给外界的接口,这一点和C++很像。
不过关于Objective-C的详细介绍书中将在后面讲到。