课后练习题
定义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
原文:http://my.oschina.net/AnyiLi/blog/516002