为何说要多用组合少用继承?如何决定该用组合还是继承? - IT文艺男 - 博客园 (cnblogs.com)
这篇文章很详细的说明了继承的作用以及扩展了---使用其他方法替代继承的例子!
1、为什么要继承?
* (1)代码的复用
* 延续父类的一些特征
* (2)会扩展父类没有的一些特性
* (3)表示is-a的关系
2、如何实现继承?
在声明一个类时去继承它的父类。
语法格式:【修饰符】class子类名
子类(SubClass):paishenglei
父类(SuperClass):基类/超类
extends:扩展
3、继承的要求
(1)子类在继承父类时,一定会在子类的构造器中调用父类的构造器。
1.1默认情况下是调用父类的无参构造
super():可以省略
1.2如果父类没有无参列表,那么子类可以显示的调用父类的有参构造
super(实参列表):调用父类的有参构造
4、继承的特点
(1)子类不会继承父类的构造器,但子类的构造器中一定会调用父类的构造器
(2)子类可以继承父类的所有方法、属性。如果父类中关于这个方法和属性是私有方法的话,子类不可直接调用。
(3)子类可以扩展父类没有的属性和方法
(4)如果父类方法的方法体不适用于子类,那么我们的子类可以选择进行重写
(5)java中继承有单继承的限制,不支持多重继承
(6)如何理解:一个子类只能有一个直接的父类,换句话说,那么我们的子类可以选择进行重写
class Manage extends Employee{} 对的
class Manage extends Employee,Person{}错误
(7)Java支持多层继承:父类可以有父类,然后父类的父类也是我的父类
class Manage extends Employee{}
class Manage extends Person{}
区别:Manage把Employee称为直接父类,把person称为间接父类
(8)Java中国一个父类可以同时有很多子类
class Employee extends Person{}
class Student extends Person{}
Person同时有两个子类Employee、Students