Object-C 学习笔记(八)---面相对象(继承)

类:是事物共性的抽象.

对象:是一个事物的具体表现.


继承特点:

(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  任何地方可以调用


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值