Objective-C Language
наследование
Поиск…
Синтаксис
- @interface производный класс-Имя: base-class-Name
Автомобиль унаследован от транспортного средства
Рассмотрим базовый класс Vehicle и его производный класс Car следующим образом:
#import <Foundation/Foundation.h>
@interface Vehicle : NSObject
{
NSString *vehicleName;
NSInteger vehicleModelNo;
}
- (id)initWithName:(NSString *)name andModel:(NSInteger)modelno;
- (void)print;
@end
@implementation Vehicle
- (id)initWithName:(NSString *)name andModel:(NSInteger)modelno{
vehicleName = name;
vehicleModelNo = modelno;
return self;
}
- (void)print{
NSLog(@"Name: %@", vehicleName);
NSLog(@"Model: %ld", vehicleModelNo);
}
@end
@interface Car : Vehicle
{
NSString *carCompanyName;
}
- (id)initWithName:(NSString *)name andModel:(NSInteger)modelno
andCompanyName:(NSString *)companyname;
- (void)print;
@end
@implementation Car
- (id)initWithName:(NSString *)name andModel:(NSInteger) modelno
andCompanyName: (NSString *) companyname
{
vehicleName = name;
vehicleModelNo = modelno;
carCompanyName = companyname;
return self;
}
- (void)print
{
NSLog(@"Name: %@", vehicleName);
NSLog(@"Model: %ld", vehicleModelNo);
NSLog(@"Company: %@", carCompanyName);
}
@end
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Base class Vehicle Object");
Vehicle *vehicle = [[Vehicle alloc]initWithName:@"4Wheeler" andModel:1234];
[vehicle print];
NSLog(@"Inherited Class Car Object");
Car *car = [[Car alloc]initWithName:@"S-Class"
andModel:7777 andCompanyName:@"Benz"];
[car print];
[pool drain];
return 0;
}
Когда приведенный выше код компилируется и выполняется, он производит следующий результат:
2016-09-29 18: 21: 03.561 Наследование [349: 303] Базовый класс Объект транспортного средства
2016-09-29 18: 21: 03.563 Наследование [349: 303] Название: 4Wheeler
2016-09-29 18: 21: 03.563 Наследование [349: 303] Модель: 1234
2016-09-29 18: 21: 03.564 Наследование [349: 303] Унаследованный объект класса автомобилей
2016-09-29 18: 21: 03.564 Наследование [349: 303] Название: S-Class
2016-09-29 18: 21: 03.565 Наследование [349: 303] Модель: 7777
2016-09-29 18: 21: 03.565 Наследование [349: 303] Компания: Benz
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow