【java中extends】在Java编程语言中,`extends` 是一个非常重要的关键字,主要用于实现类与类之间的继承关系。通过 `extends` 关键字,一个类可以继承另一个类的属性和方法,从而实现代码的复用和扩展。
一、`extends` 的基本作用
作用 | 描述 |
继承 | 使用 `extends` 可以让一个类继承另一个类的成员(包括字段和方法) |
复用代码 | 避免重复编写相同的功能代码,提高代码的可维护性 |
多态支持 | 为多态提供基础,是面向对象编程的重要特性之一 |
二、`extends` 的使用方式
1. 单继承
Java 中的类只能单继承,即一个类只能直接继承一个父类:
```java
class Animal {
void eat() {
System.out.println("动物在吃东西");
}
}
class Dog extends Animal {
void bark() {
System.out.println("狗在叫");
}
}
```
2. 父类构造函数调用
子类在实例化时,会自动调用父类的无参构造函数。如果父类没有无参构造函数,需要显式调用:
```java
class Parent {
Parent(String name) {
System.out.println("父类构造函数: " + name);
}
}
class Child extends Parent {
Child() {
super("小明"); // 显式调用父类带参数的构造函数
System.out.println("子类构造函数");
}
}
```
三、`extends` 与 `implements` 的区别
特性 | `extends` | `implements` |
用于 | 类继承类 | 类实现接口 |
继承内容 | 属性和方法 | 接口定义的方法 |
多继承 | 不支持(Java 不允许类多继承) | 支持(一个类可以实现多个接口) |
构造函数 | 子类调用父类构造函数 | 不涉及构造函数 |
示例 | `class B extends A` | `class C implements I1, I2` |
四、注意事项
注意事项 | 说明 |
Java 不支持多继承 | 一个类只能继承一个类,但可以通过接口实现多继承 |
构造函数不能被继承 | 子类不能直接继承父类的构造函数,但可以调用 |
方法覆盖(Override) | 子类可以重写父类的方法,实现不同的行为 |
访问权限 | 子类可以访问父类的 `public` 和 `protected` 成员,不能访问 `private` 成员 |
五、总结
`extends` 是 Java 中实现类继承的关键字,通过它,我们可以构建层次分明的类结构,提升代码的复用性和可扩展性。虽然 Java 不支持多继承,但通过接口(`implements`)可以弥补这一限制。理解 `extends` 的使用方式和注意事项,有助于更好地进行面向对象的设计与开发。