继承的经典实例
来源:互联网 发布:淘宝代练剑三 编辑:程序博客网 时间:2024/06/11 22:23
继承
/* 1.继承的好处: 1> 抽取重复代码 2> 建立了类之间的关系 3> 子类可以拥有父类中的所有成员变量和方法 2.注意点 1> 基本上所有类的根类是NSObject *//********Animal的声明*******/@interface Animal : NSObject{ int _age; double _weight;}- (void)setAge:(int)age;- (int)age;- (void)setWeight:(double)weight;- (double)weight;@end/********Animal的实现*******/@implementation Animal- (void)setAge:(int)age{ _age = age;}- (int)age{ return _age;}- (void)setWeight:(double)weight{ _weight = weight;}- (double)weight{ return _weight;}@end/********Dog*******/// : Animal 继承了Animal,相当于拥有了Animal里面的所有成员变量和方法// Animal称为Dog的父类// Dog称为Animal的子类@interface Dog : Animal@end@implementation Dog@end/********Cat*******/@interface Cat : Animal@end@implementation Cat@endint main(){ Dog *d = [Dog new]; [d setAge:10]; NSLog(@"age=%d", [d age]); return 0;}
继承下的重写
/* 1.重写:子类重新实现父类中的某个方法,覆盖父类以前的做法 2.注意 1> 父类必须声明在子类的前面 2> 子类不能拥有和父类相同的成员变量 3> 调用某个方法时,优先去当前类中找,如果找不到,去父类中找 2.坏处:耦合性太强 */#import <Foundation/Foundation.h>// Person@interface Person : NSObject{ int _age;}- (void)setAge:(int)age;- (int)age;- (void)run;+ (void)test;@end@implementation Person+ (void)test{ NSLog(@"Person+test");}- (void)run{ NSLog(@"person---跑");}- (void)setAge:(int)age{ _age = age;}- (int)age{ return _age;}@end// 不允许子类和父类拥有相同名称的成员变量// Student@interface Student : Person{ int _no; // int _age;}+ (void)test2;@end@implementation Student// 重写:子类重新实现父类中的某个方法,覆盖父类以前的做法- (void)run{ NSLog(@"student---跑");}+ (void)test2{ [self test];}@endint main(){ [Student test2];// Student *s = [Student new];// // [s run]; return 0;}
继承使用场合
/*1.继承的使用场合 1> 当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中 2> 当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类 A { int _age; int _no; } B : A { int _weight; } // 继承:xx 是 xxx // 组合:xxx 拥有 xxx 2.组合 A { int _age; int _no; } B { A *_a; int _weight; }*/@interface Score : NSObject{ int _cScore; int _ocScore;}@end@implementation Score@end@interface Student : NSObject{ // 组合 Score *_score;// int _cScore;// int _ocScore; int _age;}@end@implementation Student@end
0 0
- 继承的经典实例
- Objective-C - 继承的经典实例
- 继承实例的实现
- javascript 继承经典的实现
- [c++]继承的经典例子
- LINQ的经典实例
- HttpWebRequest的经典实例
- 指针的经典实例
- php的经典实例
- 公有继承和私有继承的实例
- 构造方法的继承实例
- 有关于 继承的实例
- C++类的继承实例
- 继承ArrayAdapter类的实例
- 经典的位运算实例
- 经典的位运算实例
- 经典的位运算实例
- 触发器实例--很经典的
- 十大编程算法助程序员走上高手之路
- Lua4.0中的函数
- 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活
- 如何将加密pdf转换成excel
- Hadoop 之报错
- 继承的经典实例
- PE管的应用范围
- SURF特征提取与匹配实践
- C++学习 boost学习之-BOOST_STATIC_ASSERT
- Android Drawable Resource学习(六)、LevelListDrawable
- Oracle DBV工具
- 各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
- java对象初初始化过程
- Chapte10. Objective-C learning note 3. class summarize