OC的继承 初始化

来源:互联网 发布:免费黑客网盗号软件 编辑:程序博客网 时间:2024/04/29 21:22
继承。

什么是继承。
1.子类会继承父类所有的实际变量和方法。
2.子类可以重写父类的方法。
3.可以再子类重写的方法中。调用父类的方法

“Super” 关键字的作用只有一个、用于子类中调用父类的方法。 [super 方法名] 写法

作为子类时、子类的方法优先级最高。

面对对象的三大特征 : 封装 继承 多态。

怎么判断继承?
例句: A is a B 如果正确、 那么 A 是 B 的 子类。

1.带返回值的方法
- (NSString *) getName;
- (int) getAge;
- (NSString *) getSex;

2.带一个参数的写法
-/+(返回值类型)方法名:(参数类型)参数名;
- (void) eat:(NSString *)apple;

3.带多个参数
-/+(返回值类型) 方法名:(参数类型)参数名 方法名:(参数类型)参数名;
- (void) kickAss:(NSString *)name1 withPeople:(NSString *)name2;
- (NSString *) play:(NSString *)name1 withPeople:(NSString *)name2;


- (返回值) 方法名; "-" 号方法: 使用对象调用 实例方法
减号方法的调用
Student * stu = [[Student alloc] init];
+ (返回值) 方法名; "+" 号方法: 使用类调用 类方法
加号方法的调用
[Student sleep]; [类名 方法名]

方法名不可以重复
方法名的判断:
1.去掉 -或+
2.去掉返回值类型
3.去掉参数类型和参数名
4.去掉分号
5.剩下的所有内容都是方法名

方法传入的参数(name1.name2)只再方法内部可以使用、再其他方法活着main.m中都不可以调用

- (void) study
{
/实例方法中、可以使用类的实例变量
NSLog(@"%@",_name);
}

+ (void) sleep
{
/在类方法中、不可以使用实例变量
NSLog(@"%@",_name);
}


只能有一个返回值
返回值类型和返回的值的类型 (int) / (NSString *) //这句话不是太明白。

----------------------------------------------------------

- (id) init
{
self = [super init];
if(self){
_name = @"兵长";
_sex = @"男";
}
return self;
}



- (id) init
{
初始化方法是一个实例方法、返回值为id(代表任何对象类型)、方法名以init开头、只在初始化时调用一次。
self = [super init];
利用super关键字 调用父类的init方法 作用:用于初始化从父类继承过来的实例变量。
利用self(代表自己类的一个对象) 接受super初始化号的对象。


如果上面初始化不成功、self为nil(空)
if(self){
如果成功、在判断体中、初始化自己的实例变量。
_name = @"兵长";
_sex = @"男";
}
返回初始化号的对象。
return self;
0 0
原创粉丝点击