您的位置:首页 > 移动开发 > Objective-C

Objective-C学习笔记(二十五)——属性与方法的继承学习

2015-07-24 20:15 615 查看
       继承是面向对象中除了封装之后的第二大特性。继承使类之间可以不断的扩展,因此会有父类与子类的关系。子类继承自父类,可以从父类中继承属性和方法。下面我们来看一下。

(一)属性的继承。

(1)新建MyClass类,继承自NSObject类;再新建MySubClass类,继承自MyClass类。此时对于MySubClass来说,MyClass就是基类,也是父类,自己就是子类。在父类MyClass中声明一个属性。

@property(nonatomic,strong) NSString *className;//这里属性是可以被继承的;


(2)同时在main.m中进行实例化,发现不仅MyClass可以访问className这个属性,MySubClass也可以访问className这个属性。表示子类已经从父类中继承了该属性。

//父类
MyClass *myClass = [[MyClass alloc]init];
myClass.className = @"MyClass";

//子类
MySubClass *mySubClass = [[MySubClass alloc]init];
mySubClass.className = @"MySubClass";


(二)方法的继承

(1)在上一个例子的基础上,来实现下对象方法的继承,注意,在OC中方法是没有访问修饰符。在MyClass.h中声明一个方法:

-(void)report;


(2)去MyClass.m中实现该方法,只要打印出该类的类名即可。

-(void)report{

NSLog(@"ClassName = %@",_className);
}


(3)在main.m中分别用MyClass,MySubClass的对象调用该方法,发现都可以进行调用,所以可以知道对象方法是可以继承的。

//父类
MyClass *myClass = [[MyClass alloc]init];
myClass.className = @"MyClass";
[myClass report];

//子类
MySubClass *mySubClass = [[MySubClass alloc]init];
mySubClass.className = @"MySubClass";
[mySubClass report];


(4)结果输出:从结果中可以看出,子类从父类继承属性和方法后,基本上是相互独立的。子类对象可以对这些属性和方法进行访问和调用。


.

      总结,如果一个方法在类中没有声明,只有实现,则表示该方法不能被外界调用,也不能被继承,就好像被私有化了一样。

github主页:https://github.com/chenyufeng1991  。欢迎大家访问!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: