码迷,mamicode.com
首页 > 其他好文 > 详细

继承,初始化方法,便利构造器

时间:2015-11-26 23:06:48      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

1、成员访问类型

private:私有成员,不能被外部函数访问(使用),也不能被子类继承;

protected:保护成员,不能被外部函数访问,可以被子类继承;

public:公有成员,可以被外部函数访问,也可以被子类继承。

OC中,所有的方法(消息),都是公有的。

2、重写(继承的另一部分)

子类可以从父类继承方法,但是有时候父类的方法不适合子类,子类就可以写一个自己的同名方法,覆盖掉父类的同名方法,叫做重写。

重写的时候,在子类的.h中不必重新声明,直接在.m中写实现就可以。

 

 1 //父类声明文件

 2 #import <Foundation/Foundation.h>

 3 @interface Father : NSObject

 4 -(void)run;

 5 -(void)jump;

 6 @end

 7 

 8 //父类实现文件

 9 #import "Father.h"

10 @implementation Father

11 -(void)run{

12     NSLog(@"he is running!");

13     return;

14 }

 

15 -(void)jump{

16     NSLog(@"father can jump 1.2m");

17 }

18 @end

 

 

 1 //子类声明文件

 2 #import "Father.h"

 3 

 4 @interface Son : Father

 5 

 6 @end

 7 

 8 //子类实现文件

 9 #import "Son.h"

10 

11 @implementation Son

12 -(void)jump{

13      NSLog(@"he can jump 0.6m");

14 }

15 @end

 

 

其中,子类重写父类的jump方法,不需要重新声明。

同一个方法,不同的实现,称为多态。重写是多态的一种。

继承的好处:

  1)创建大量的相似类的时候,可以节省工作量。

  2)使用框架中的类,或已经写好的类,继承该类,生成一个派生类,比原类更好用。

注意:NSString、NSArray、NSDictionary都是不能够继承的。

3、虚方法

OC的方法都是虚方法

  1)父类的指针可以指向子类的对象

1 Son * son = [[Son alloc] init];

2 Father * p = son;

上面p和son都指向子类的对象;调用方法时,不看指针,看对象,对象的地址指向什么对象,就调用什么方法,称为虚方法。

  2)调用方法时,不看指针看对象,这样的方法叫做虚方法。虚方法的好处:可以描述不同事物被相同事件触发,产生不同的响应(结果)。体会下面的例子

动物的父类声明与实现

1 //动物类声明

2 #import <Foundation/Foundation.h>

3 @interface Animal : NSObject

4 -(void)beBeaten;

5 @end

 

 

 

继承,初始化方法,便利构造器

标签:

原文地址:http://www.cnblogs.com/lijielijie/p/4998990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!