权限控制:
@public
@protected
@private
举例:Car类
@interface Car : NSObject
{
@public
int speed; //速度
@protected
NSString *name; //车名
@private
intcID; //号牌
}
-(void)run;
@end
@implementation Car
-(id)init //继承父类init方法
{
if ( self = [ superinit ] )
{
cID=10000;
speed=300;
name=@”小轿车”;
}
return self;
}
-(void)run
{
NSLog(“小轿车名:%@”,name);
}
@end
新建类BmC
@interface BmC //类声明几乎为空
@end
@implementation BmC
-(void)run //重载了父类的run方法
{
name=@”宝马”; //继承父类的变量(protected标识)
NSLog(“宝马名:%@”,name);
}
@end
打开main.m
int main( int argc,char *argv[] )
{
Car *car=[ [ Car alloc ] init ];
BmC *bmc=[ [BmC alloc ] init ];
[car run]; //打印小轿车名
[bmc run]; /打印/宝马车名
[car release];
[bmc release];
}
[carsetSpeed:60];合法,调用cID\name都不合法,从外部只能调用public变量。
也可以用:car. name=1;或者car->name=1;但是不提倡,面向对象的编程只保留方法当接口,不直接访问变量。