Object C self and super 关键字

来源:互联网 发布:百度云管家for mac 编辑:程序博客网 时间:2024/05/05 17:46

1.self 是从接收该者的开始查找方法.

2 super 则是从出现该super 关键字的类定义的父类开始查找方法.


Ie:

C继承 B ,B 继承 A .

三个类都定义了 printself 方法.

其中B 还定义了 testSupernadSelf 方法.

-(void)testSupernadSelf

{

  [self printself];

}

C * t1=[[C alloc]init];

[t1 testSupernadSelf]; //首先是从t1 开始查找printself 方法,由于我们定义了C 的printself,所以会调用C printfSelf.


如果B的testSupernadSelf是这样定义.

-(void)testSupernadSelf

{

  [super printself];

}

C * t2=[[C alloc]init];

[t2 testSupernadSelf]; //这时候就会从定义了super 关键字的类的父类开始查找. 那就是A,所以调用的是A printfSelf.而不是B printfSelf



原创粉丝点击