java 如何继承
继承的基本概念
在Java中,继承是一种面向对象的编程机制,允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以复用父类的代码,同时可以扩展或修改父类的功能。

语法规则
使用 extends 关键字实现继承:

class ParentClass {
// 父类的属性和方法
}
class ChildClass extends ParentClass {
// 子类可以添加新的属性和方法,或重写父类方法
}
继承的特点
- 子类继承父类的非私有成员(
public、protected和默认访问权限的成员)。 - 子类可以重写(
@Override)父类的方法,提供自己的实现。 - Java不支持多重继承,一个子类只能继承一个父类,但可以通过接口实现多继承。
示例代码
// 父类
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 子类继承父类
class Dog extends Animal {
@Override
public void eat() {
System.out.println("Dog is eating");
}
public void bark() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat(); // 调用子类重写的方法
dog.bark(); // 调用子类新增的方法
}
}
继承中的构造方法
子类的构造方法默认会调用父类的无参构造方法(super())。如果父类没有无参构造方法,子类必须显式调用父类的有参构造方法。
class Parent {
Parent(String name) {
System.out.println("Parent constructor: " + name);
}
}
class Child extends Parent {
Child() {
super("ParentName"); // 显式调用父类构造方法
System.out.println("Child constructor");
}
}
方法重写的规则
- 方法名、参数列表必须与父类方法完全相同。
- 返回类型可以是父类方法返回类型的子类(协变返回类型)。
- 访问权限不能比父类方法更严格(例如父类是
public,子类不能是private)。 - 不能重写
final或static方法。
继承与多态
通过继承可以实现多态,即父类引用指向子类对象:
Animal myDog = new Dog(); // 多态
myDog.eat(); // 调用子类重写的方法
注意事项
- 避免过度使用继承,优先考虑组合而非继承。
- 使用
final关键字可以禁止类被继承或方法被重写。 - 继承层次过深可能导致代码难以维护。






