oc自学-继承
@interface ClassA: NSObject
{
int x;
}
-(void) initVar;
@end
@implementation ClassA
-(void) initVar
{
x = 100;
}
@end
@interface ClassB: ClassA
-(void) printVar;
@end
@implementation ClassB
-(void) printVar
{
NSLog(@"x = %i",x);
}
@end
在自雷中使用实例变量,必须现在接口部分声明,而不是在实现部分声明。在实现部分声明和合成(synthesize)的实力变量是私有的,子类中并不能直接访问,需要明确定义或合成取值方法,才能访问实例变量的值。
找出正确的方法
通过继承来扩展:添加新方法
@class指令
#import <Foundation/Foundation.h>
@class XYPoint;
@interface Rectangle: NSObject
@property int width, height;
-(XYPoint *) origin;
-(void) setOrigin: (XYPoint *) pt;
-(void) setWidth: (int) w andHeight: (int) h;
-(int) area;
-(int) perimeter;
@end
@class XYPoint,因为编译器在遇到Rectangle定义的实力变量XYPoint时,必须了解XYPoint是什么。类名还会分别用在setORigin:和orgin方法的参数及返回类型声明。还有另外一个选择,可以导入头文件代替这条指令:
#import "XYPoint.h"
使用@class指令提高了效率,因为编译器不需要引入和处理整个XYPoint.h文件,如果要引用XYPoint类的方法,@class指令是不够的,因为编译器需要更多的消息。
具有对象的类
覆写方法
使用和父类相同的名称定义的方法代替或覆写了继承的定义,新方法必须具有相同的返回类型,并且参数的数目与覆写的方法相同。
抽象类
不可使实例化iOS 的协议
c# 的 interface
c++ 的 abstract class- 自学iOS开发系列----OC(继承)
- 黑马程序员--OC自学笔记--04self、super、继承、多态、修饰符
- [黑马IOS自学第十一篇]OC语言基础,SELF关键字,面向对象概念,类学习多态,继承@property等
- 【《Objective-C基础教程 》笔记ch04】(五)OC中的继承inheritance机制
- 黑马程序员--OC自学笔记---02对象存储细节、NSString简介、多文件开发
- 黑马程序员——OC学习之类的本质和常用的继承自NSObject的方法
- Hibernate4自学入门(九)——映射继承
- 04-OC属性的使用、自动释放池、封装和继承
- OC基础5:继承
- 黑马程序员----OC学习之继承
- OC面向对象特性: 继承
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法3
- OC语言---封装,继承,多态
- OC语言学习——继承和多态的一些随笔记
- OC基础知识 -- 继承
- OC学习笔记02-OC中的面向对象语法表现 - 封装 继承与多态
- OC-继承、初始化方法、便利构造器概念
- 黑马程序员 Java自学总结七 面向对象三个特征之继承
- OC僵尸 属性 便利构造器 BOOL类型 继承 方法重写
- CppPrimer自学(3)公有继承