课后练习题
定义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