java如何继承
Java 继承的基本语法
在 Java 中,继承通过 extends 关键字实现。子类继承父类的非私有成员(字段和方法)。语法如下:
class ParentClass {
// 父类的字段和方法
}
class ChildClass extends ParentClass {
// 子类可以添加新的字段和方法
// 也可以重写父类的方法
}
继承的规则
- 单继承限制:Java 不支持多继承,一个子类只能继承一个父类。
- 构造方法不被继承:子类需要通过
super()调用父类构造方法。 - 私有成员不可继承:父类的
private成员对子类不可见。
方法重写(Override)
子类可以重写父类的方法,需满足以下条件:
- 方法名、参数列表必须与父类相同。
- 返回类型可以是父类方法返回类型的子类型(协变返回类型)。
- 访问权限不能比父类更严格(例如父类为
protected,子类不能为private)。
class Animal {
void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Bark");
}
}
super 关键字
- 调用父类构造方法:必须在子类构造方法的第一行。
- 访问父类成员:当子类重写方法后,可通过
super.methodName()调用父类版本。
class Parent {
String name = "Parent";
}
class Child extends Parent {
String name = "Child";
void printNames() {
System.out.println(super.name); // 输出 "Parent"
System.out.println(this.name); // 输出 "Child"
}
}
继承与构造方法
子类构造方法默认调用父类的无参构造方法。若父类没有无参构造方法,需显式调用:

class Parent {
Parent(int x) {
System.out.println("Parent constructor");
}
}
class Child extends Parent {
Child() {
super(10); // 必须显式调用
System.out.println("Child constructor");
}
}
继承的类型
- 单层继承:直接继承一个父类。
- 多层继承:形成继承链(如 A → B → C)。
- 不允许循环继承(如 A → B → A)。
继承的应用场景
- 代码复用:共享通用逻辑。
- 多态实现:通过父类引用指向子类对象。
- 层次化设计:如 GUI 组件库(
Component→Button)。
注意事项
- 避免过度继承:优先使用组合而非继承。
final类不可继承:如String类。final方法不可重写。
通过合理使用继承,可以构建清晰的类层次结构,但需注意设计原则(如 LSP 里氏替换原则)。






