继承作为面向对象的三大特性之一,有着非常重要的地位。使用继承可以大大减少冗余代码,提高代码的复用性。
继承可以使得子类沿用父类的成员(属性和方法)。当多个子类具有相同的成员时,就可以考虑将这些成员提取出来,放到父类中,然后再用子类去继承这个父类,也就是将一些相同的成员提取到了更高的层次中。
继承的关键字是 extends
,语法形式如下。
class A extends B{
类定义部分
}
以上表示 A 类继承 B 类,B 类称为父类、超类或基类;A 类称为子类、衍生类或导出类。
不能继承的两种情况:
使用继承是否能够获取父类的一切内容呢?不是,以下是两种特殊的情况。
-
子类无法继承父类的构造方法
构造方法是一种特殊的方法,子类无法继承父类的构造方法。
-
子类不能继承父类中不符合访问权限的成员
private 修饰的成员仅对当前类可见,而继承是子类继承父类的成员,显然子类和父类是不同的类,因此子类无法继承父类中用 private 修饰的成员。同理,子类也无法继承父类中不满足 protected 或默认访问权限修饰的成员。