类:是事物共性的抽象.
对象:是一个事物的具体表现.
继承特点:
(1)Object-C是一种单继承的面相对象语言.
(2)提高代码的复用性.
(3)提高代码的扩展性
缺点:提高了代码的耦合度.
例子:
//
// Animal.h
// Extend
//
// Created by 5016 on 13-12-3.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Animal : NSObject
@property(retain,nonatomic)NSString* name;//名字
@property(assign,nonatomic)NSInteger age;//年龄
@property(retain,nonatomic)NSString* color;//毛色
-(void)play;
-(void)sleep;
-(Animal *)initWithName:(NSString*)name andAge:(NSInteger) age andColor:(NSString*) color;
@end
//
// Animal.m
// Extend
//
// Created by 5016 on 13-12-3.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import "Animal.h"
@implementation Animal
@synthesize name = _name,age = _age,color = _color;
-(void)play
{
NSLog(@"正在玩耍");
}
-(void)sleep
{
NSLog(@"正在睡觉");
}
-(Animal *)initWithName:(NSString*)name andAge:(NSInteger) age andColor:(NSString*) color
{
if (self = [super init]) {
self.name = name;
self.age = age;
self.color = color;
}
return self;
}
@end
//
// Dog.h
// Extend
//
// Created by 5016 on 13-12-3.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import "Animal.h"
@interface Dog : Animal
-(void)watchDoor;
@end
//
// Dog.m
// Extend
//
// Created by 5016 on 13-12-3.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import "Dog.h"
@implementation Dog
-(void)watchDoor
{
NSLog(@"正在看门口");
}
@end
//
// Cat.h
// Extend
//
// Created by 5016 on 13-12-3.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import "Animal.h"
@interface Cat : Animal
-(void)catchMouse;
@end
//
// Cat.m
// Extend
//
// Created by 5016 on 13-12-3.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import "Cat.h"
@implementation Cat
-(void)catchMouse
{
NSLog(@"猫正在抓老鼠");
}
@end
//
// main.m
// Extend
//
// Created by 5016 on 13-12-3.
// Copyright (c) 2013年 dradon. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Cat.h"
#import "Dog.h"
int main(int argc, const char * argv[])
{
Cat *cat = [[Cat alloc] initWithName:@"猫咪" andAge:2 andColor:@"黄色"];
NSLog(@"这是一只%@,%ld岁,颜色是%@色",cat.name,cat.age,cat.color);
[cat play];
[cat sleep];
[cat catchMouse];
NSLog(@"--------------------------");
Dog *dog = [[Dog alloc] initWithName:@"考拉" andAge:4 andColor:@"白色"];
[dog play];
[dog sleep];
[dog watchDoor];
return 0;
}
猫和狗继承了动物类,于是可以继承动物类的公共类的方法与属性.
private 不能被继承
protect 只能被自己和直接继承的子类使用
public 任何地方可以调用