继承关系的初始化方法重写
2016-04-01 23:46
295 查看
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject{
NSString * _name;
int _age;
}
@property NSString * name;
@property int age;
- (instancetype)initWithName:(NSString *)name andAge:(int)age;
@end
Person.m
#import "Person.h"
@implementation Person
- (instancetype)initWithName:(NSString *)name andAge:(int)age{
if (self = [super
init]) {
_name = name;
_age = age;
}
return
self;
}
@end
Student.h
#import "Person.h"
@interface Student : Person{
int _studentNumber;
}
@property int studentNumber;
- (instancetype)initWithStudentNumber:(int)studentNumber;
@end
Student.m
#import "Student.h"
@implementation Student
- (instancetype)initWithStudentNumber:(int)studentNumber{
if (self = [super
init]) {
_studentNumber = studentNumber;
}
return
self;
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc,
const char * argv[]) {
@autoreleasepool {
Person * p1 = [[Person
alloc] initWithName:@"张三"
andAge:25];
Student * s1 = [[Student
alloc] initWithStudentNumber:21];
NSLog(@"name = %@,age = %d,studentNumber = %d",p1.name,p1.age,s1.studentNumber);
}
return
0;
}
#import <Foundation/Foundation.h>
@interface Person : NSObject{
NSString * _name;
int _age;
}
@property NSString * name;
@property int age;
- (instancetype)initWithName:(NSString *)name andAge:(int)age;
@end
Person.m
#import "Person.h"
@implementation Person
- (instancetype)initWithName:(NSString *)name andAge:(int)age{
if (self = [super
init]) {
_name = name;
_age = age;
}
return
self;
}
@end
Student.h
#import "Person.h"
@interface Student : Person{
int _studentNumber;
}
@property int studentNumber;
- (instancetype)initWithStudentNumber:(int)studentNumber;
@end
Student.m
#import "Student.h"
@implementation Student
- (instancetype)initWithStudentNumber:(int)studentNumber{
if (self = [super
init]) {
_studentNumber = studentNumber;
}
return
self;
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc,
const char * argv[]) {
@autoreleasepool {
Person * p1 = [[Person
alloc] initWithName:@"张三"
andAge:25];
Student * s1 = [[Student
alloc] initWithStudentNumber:21];
NSLog(@"name = %@,age = %d,studentNumber = %d",p1.name,p1.age,s1.studentNumber);
}
return
0;
}
相关文章推荐
- PostgreSQL教程(三):表的继承和分区表详解
- Lua面向对象之类和继承浅析
- 浅析Ruby中继承和消息的相关知识
- 设计引导--一个鸭子游戏引发的设计理念(多态,继承,抽象,接口,策略者模式)
- C++实现不能被继承的类实例分析
- C# 面向对象三大特性:封装、继承、多态
- PHP类的封装与继承详解
- js继承 Base类的源码解析
- Javascript 面向对象 继承
- JavaScript 继承使用分析
- Javascript面向对象编程(二) 构造函数的继承
- Javascript中的几种继承方式对比分析
- javascript面向对象之Javascript 继承
- JavaScript 对象、函数和继承
- 详述JavaScript实现继承的几种方式(推荐)
- javascript 继承学习心得总结
- 学习javascript面向对象 javascript实现继承的方式
- 关于JavaScript的面向对象和继承有利新手学习
- JavaScript 继承详解(一)
- JavaScript 继承详解(二)