oc 是一门面向对象的语言
面向对象的三大特征:封装、 继承、 多态
1. 封装:把具体的对象 抽象化 把有相同类型的对象抽象成一个类 隐藏内部实现 内部变量安全性
封装的好处 :1、可以提升代码的复用性
2、变量的安全性
3、提高代码的可读性
2. 继承:子类拥有父类的全部属性和方法
子类:就是继承的类
父类:超级类 ,被继承的类
子类独有的 父类不能使用
子类可以扩展父类的方法和属性 同时也可以添加变量
oc 里没有多继承 但是可以多级继承
如果父类拥有的方法 子类不希望使用那种方式 可以重写这个方法
3. 多态: 一个事物的多样性 一个事物同一个方法表现出不同的状态、
具体代码
在main函数里面
#import <Foundation/Foundation.h>
#import "Nature.h"
#import "Anddd.h"
int main(int argc,const char * argv[]) {
@autoreleasepool {
Nature *LiBai = [ [Naturealloc ]init ] ;
LiBai.name =@"李白" ;
[ LiBailifi ] ;
[ LiBaiback ] ;
Anddd *liuTingJun = [[Anddd alloc ]init ] ;
liuTingJun.name=@"杜甫" ;
[ liuTingJunlifi ] ;
[ liuTingJunback ] ;
liuTingJun.blood =100 ;
[ liuTingJun bloodList ] ;
}
return 0;
}
在Nature.h里面
#import <Foundation/Foundation.h>
@interface Nature :NSObject
@propertyNSString *name ;
- (void)lifi ;
- (void)back ;
@end
在Nature.m里面
#import "Nature.h"
@implementation Nature
- (void)lifi
{
NSLog(@"%@活着",self.name);
}
- (void)back
{
NSLog(@"%@回炉",self.name) ;
}
@end
在Anddd.h里面
#import <Cocoa/Cocoa.h>
#import "Nature.h"
@interface Anddd : Nature
@property int blood ;
- (void)bloodList ;
@end
在Anddd.m里面
#import "Anddd.h"
@implementation Anddd
- (void)bloodList
{
NSLog( @"%@回了%d滴血" , self.name ,self.blood ) ;
}
@end