```markdown
继承是面向对象编程(OOP)中的一个重要概念,它是指一个类可以继承另一个类的属性和方法。通过继承,子类可以复用父类的代码,减少代码冗余,实现代码的重用和扩展。
在 Java 中,继承是通过 extends
关键字来实现的。子类继承父类后,可以直接访问父类中的公有(public
)和保护(protected
)成员,且可以对其进行扩展或修改。
继承使得子类可以重用父类的属性和方法,避免了重复编写相同的代码。子类继承父类后,无需再次实现父类已有的功能,节省了开发时间。
子类可以根据需要重写父类的方法,提供更具体的实现。这称为方法重写。在子类中重写的方法必须具有与父类方法相同的返回类型和方法签名。
构造函数不会被继承,但子类可以通过 super()
调用父类的构造函数,进行父类的初始化。
extends
关键字在 Java 中,继承通过 extends
关键字来实现。子类继承父类时,可以使用 super
关键字调用父类的构造函数或者方法。
```java // 父类 class Animal { String name;
public Animal(String name) {
this.name = name;
}
public void sound() {
System.out.println("动物发出声音");
}
}
// 子类继承父类 class Dog extends Animal {
public Dog(String name) {
// 调用父类构造函数
super(name);
}
// 重写父类方法
@Override
public void sound() {
System.out.println(name + " 汪汪叫");
}
}
public class Main { public static void main(String[] args) { Dog dog = new Dog("小狗"); dog.sound(); // 输出:小狗 汪汪叫 } } ```
super
关键字super
关键字用于访问父类的成员。它有以下几种用途:
- super()
:调用父类的构造函数。
- super.属性
:访问父类的属性。
- super.方法()
:调用父类的方法。
```java class Parent { int num;
public Parent(int num) {
this.num = num;
}
public void display() {
System.out.println("父类的方法:" + num);
}
}
class Child extends Parent {
public Child(int num) {
super(num); // 调用父类构造函数
}
@Override
public void display() {
super.display(); // 调用父类方法
System.out.println("子类的方法");
}
}
public class Main { public static void main(String[] args) { Child child = new Child(10); child.display(); } } ```
父类的方法:10
子类的方法
super
调用父类的构造函数。继承是 Java 中实现代码复用和扩展的重要手段。通过继承,子类可以复用父类的代码,重写父类的方法以提供更具体的实现,且可以通过 super
关键字调用父类的成员。在实际开发中,合理利用继承能够有效提高代码的可维护性和扩展性。
```