OC基础学习日志
OC基础学习日志
Anyi_安一 发表于3年前
OC基础学习日志
  • 发表于 3年前
  • 阅读 26
  • 收藏 1
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 继承多态练习(车)

课后练习题

定义Car,Bus,Truck为例题

main.m

#import <Foundation/Foundation.h>
#import "Car.h"
#import "Bus.h"
#import "Truck.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Car *car = [Car new];
        [car setWheel:22];
        [car setSpeed:33];
        [car describeCar:car];
    
        Bus *bus = [Bus new];
        [bus setWheel:14];
        [bus setSpeed:33];
        [bus setSeat:44];
        [bus describeBus:bus];
        
        Truck *truck = [Truck new];
        [truck setWheel:15];
        [truck setSpeed:56];
        [truck setWeight:99];
        [truck describeTruck:truck];
      
    }
    return 0;
}

Car.h

#import <Foundation/Foundation.h>

@interface Car : NSObject
{
    int _wheel;
    int _speed;
}
-(void)setWheel:(int)wheel;
-(void)setSpeed:(int)speed;
-(void)describeCar:(Car *)car;
@end

Car.m

#import "Car.h"

@implementation Car
-(void)setWheel:(int)wheel
{
    _wheel = wheel;
}
-(void)setSpeed:(int)speed
{
    _speed = speed;
}
-(void)describeCar:(Car *)car;
{
    NSLog(@"Car wheel is %d,Speed is %d km/h",_wheel,_speed);
}

@end

Bus.h

#import <Foundation/Foundation.h>
#import "Car.h"

@interface Bus : Car
{
    int _seat;
}
-(void)setSeat:(int)seat;
-(void)describeBus:(Car *)bus;

@end

Bus.m

#import "Bus.h"

@implementation Bus
-(void)setSeat:(int)seat
{
    _seat = seat;
}
-(void)describeBus:(Car *)bus;
{
    NSLog(@"Bus wheel is %d,Speed is %d km/h,Seat is %d ",_wheel,_speed,_seat);
}
@end

Truck.h

#import <Foundation/Foundation.h>
#import "Car.h"

@interface Truck : Car
{
    int _weight;
}

-(void)setWeight:(int)weight;
-(void)describeTruck:(Car *)truck;

@end

Truck.m

#import "Truck.h"

@implementation Truck

-(void)setWeight:(int)weight
{
    _weight = weight;
}
-(void)describeTruck:(Car *)truck;
{
    NSLog(@"Bus wheel is %d,Speed is %d km/h,weight is %d kg",_wheel,_speed,_weight);
}

@end

输出结果:

2015-10-12 18:20:09.872 继承多态练习(车)[1264:698570] Car wheel is 22,Speed is 33 km/h

2015-10-12 18:20:09.873 继承多态练习(车)[1264:698570] Bus wheel is 14,Speed is 33 km/h,Seat is 44 

2015-10-12 18:20:09.873 继承多态练习(车)[1264:698570] Bus wheel is 15,Speed is 56 km/h,weight is 99 kg


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 3
码字总数 1493
×
Anyi_安一
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: