Java中的继承
在Java中,继承是面向对象编程的重要概念之一。它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。
语法
class Subclass extends Superclass {
// 子类的成员变量和方法
}
关键概念
子类(Subclass)和父类(Superclass)
- 子类是通过关键字
extends
扩展父类的类。 - 父类是子类继承属性和方法的类。
继承的特点
- 子类可以继承父类的非私有成员(成员变量和方法),但不能继承父类的构造方法和私有成员。
- 子类可以覆盖(重写)父类的方法,实现自己的逻辑。
- 子类可以调用父类的构造方法,使用
super()
关键字。
构造方法
- 子类可以有自己的构造方法,但是它可以使用
super()
调用父类的构造方法。 - 如果没有显式地调用父类的构造方法,Java 将自动调用父类的无参构造方法。
继承链
- Java 支持多层继承,即一个类可以从另一个类继承,后者又可以从另一个类继承,形成继承链。
方法覆盖(Override)
- 子类可以通过定义与父类具有相同签名的方法来覆盖父类的方法。
- 方法覆盖允许子类提供对继承的方法的新实现。
方法重载(Overload)
- 方法重载是指在同一个类中,可以有多个方法具有相同的名称,但参数列表不同的情况。
示例
class Animal {
void sound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
void sound() {
System.out.println("狗在叫");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound(); // 输出 "狗在叫"
}
}
在上面的示例中,Dog
类继承了 Animal
类,并覆盖了 sound()
方法,提供了自己的实现。
继承是Java中非常强大的功能,它允许代码重用和层次化设计,但同时也需要谨慎使用,避免产生过度耦合的类结构。