一、什么是继承?
继承从广义上讲是指子类继承父类的所有可以继承的实例变量和方法;
它应该包含三个部分:
1、被继承者(父类);
2、继承者(子类);
3、继承的实现(继承的过程等);
二、针对继承三个部分的阐述:
1、父类(被继承者):父类是一个比较抽象的类,它包含了所有子类所拥有的共同的特征(实例变量【属性】和方法【行为】),同样,综合所有子类的共同特征也可以抽象出父类的属性和行为; 及父类具有大多数子类的特征;子类也继承了父类的大部分甚至是全部的方法;
2、子类(继承者):子类相对于父类更加具体,子类继承了所有父类中可以继承的实例变量和方法,(通过继承子类将会拥有父类的实例变量和方法)并且可以根据自己的需要增加额外的方法和实例变量,子类也可以覆盖父类原有的方法,覆盖的方法是在子类中对此方法重新定义 (注意:完成覆盖的前提是:在子类中重新定义的方法的名称,返回值,和参数类型、数量、和顺序都必须和父类所定义的完全一致才能完成对父类方法的覆盖,只修改返回值类型则是非法的);子类无法覆盖父类中的实例变量,大多数情况下也没有覆盖的必要;
3、继承的实现(继承过程等):用java中的关键字extends 在定义子类的时候连接子类和父类,extends 有延伸,扩充,继承的意思,及子类对父类在继承的基础上也可根据需要延伸扩充父类的功能(增加实例变量和方法)或者覆盖父类的方法;
设计子类时对类的层次没有过多的限制,一般保持在一到两个层次,及 父类--> 子类--> 子类的子类 三层;
父类可以控制自己的哪些部分可以继承,哪些部分不能被继承
控制方法:1、使用private 和 public 关键字对实例变量和方法进行存取控制 包含private 关键字的不能被继承,相反包含public 的则可以被继承
2、使用关键字final 表示实例变量和方法的最终状态 无法被改变及无法被子类继承;
三、为什用继承
只使用一个父类来定义所有子类共同的程序代码,避免在各个子类分别定义与其他子类重复的代码,当这些共同代码需要修改时,只需要修改父类中的相对应的代码即可,避免了对程序大规模的修改,更重要的是修改后只需将父类重新编译,没有进行其他修改的子类不用重新编译,节省了编译的时间,便于程序后期的维护
注意继承的使用方法:如老虎是动物,所以老虎类可以继承动物类 而 照明设备是灯泡 显然继承错误 灯泡是照明设备的一种;