首页 > 代码库 > 黑马程序员 06-继承

黑马程序员 06-继承

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

1、继承的概念

  狗类Dog:具有年龄和体重的属性,和跑的行为

  猫类Cat:具有年龄和体重的属性,和跑的行为

  二者具有相同的属性和行为,在编写代码过程中,会出现重复代码,影响效率。

因此,我们抽取两个类的共性,定义一个动物类Animal。

Dog和Cat类继承Animal类,Dog和Cat称为Animal的子类,Animal称为Dog和Cat的父类。

 1 #import <Foundation/Foundation.h> 2 /* 3  1.继承的好处: 4  1> 抽取重复代码 5  2> 建立了类之间的关系 6  3> 子类可以拥有父类中的所有成员变量和方法 7   8  2.注意点 9  1> 基本上所有类的根类是NSObject10  */11 12 13 /********Animal的声明*******/14 @interface Animal : NSObject15 {16     int _age;17     double _weight;18 }19 20 - (void)setAge:(int)age;21 - (int)age;22 23 - (void)setWeight:(double)weight;24 - (double)weight;25 @end26 27 /********Animal的实现*******/28 @implementation Animal29 - (void)setAge:(int)age30 {31     _age = age;32 }33 - (int)age34 {35     return _age;36 }37 38 - (void)setWeight:(double)weight39 {40     _weight = weight;41 }42 - (double)weight43 {44     return _weight;45 }46 @end47 48 /********Dog*******/49 // : Animal 继承了Animal,相当于拥有了Animal里面的所有成员变量和方法50 // Animal称为Dog的父类51 // Dog称为Animal的子类52 @interface Dog : Animal53 @end54 55 @implementation Dog56 @end57 58 /********Cat*******/59 @interface Cat : Animal60 @end61 62 @implementation Cat63 @end64 65 int main()66 {67     Dog *d = [Dog new];68     69     [d setAge:10];70     71     NSLog(@"age=%d", [d age]);72     return 0;73 }

2、继承的好处

(1)抽取重复代码

(2)建立了类与类之间的关系

(3)子类可以拥有父类中的所有成员变量和方法

3、注意点

(1)基本上所有类的基类是NSObject

(2)父类必须写在子类前面

(3)不允许子类和父类拥有相同名称的成员变量

(4)调用某个方法时,优先去当前对象中找,找不到就去父类中找。

4、缺点

  耦合性太强,类的关系太紧密。

 

黑马程序员 06-继承