OC里的继承和重写

2023-05-16,,

 

 1.@private私有成员是不能被继承,也不能被外部函数访问。

@public 公有成员能被继承,也能被外部函数访问。

@protected 保护成员能够被继承,不能够被外部函数访问。

2. 继承后,父类公有的成员,子类继承后还是公有的;父类受保护的成员,子类继承后仍为受保护的。

3. OC中成员函数都死公有的,可以被继承,继承后,仍然是公有的。

4. 子类之中继承了父类中的保护和公有成员,如有私有属性,先继承部分属性,然后添加私有属性。

5. 超类 子类 --->强调相同

基类 派生类 --->强调不同

6. C++中可以sizeof子类得到子类的大小,但是OC中不能这样,主要因为OC编译器远没有C++编译器强大。Sizeof是编译的概念,alloc是运行的概念,OCsizeof的调用在子类创建之前,sizeof自然不能达到我们的期望。OC中编译时,不知道子类到底有多大。

7. 函数的重写,从父类继承的方法,可能这个方法并不适合子类,可以在子类中重写父类的方法。

重写之后,父类的对象调用父类的方法;子类的对象,调用子类的方法。不会引起冲突。从父类继承的方法,不适用于子类时,可以直接声明父类的同名函数,并定义。不用考虑父类中,函数已存在的问题。重写后,子类就不能调用父类的方法。

8. OC中所有的函数都是虚函数,函数的重写可实现多态性。

不同的(相近的)事物,在经过同一事件触发时,产生不同的结果or响应,调用函数时,不看指针看对象。父类的指针可以指向子类的对象。

《OC里的继承和重写.doc》

下载本文的Word格式文档,以方便收藏与打印。