在 Java 中,超类(父类 / 基类)和接口(Interface)都属于“抽象与复用”的机制,但二者在设计目的、语法规则和使用关系上有明显区别与联系。
下面从几个维度说明它们的关系。
class 定义extends)class Animal {
void eat() {
System.out.println("吃");
}
}
interface 定义implements)default / static 方法private 方法interface Flyable {
void fly();
}
class Bird extends Animal implements Flyable {
public void fly() {
System.out.println("飞");
}
}
✅ 关系总结:
超类描述“是什么”(is-a)
接口描述“能做什么”(can-do)
interface A {}
interface B {}
interface C extends A, B {}
⚠️ 注意:
抽象类(abstract class)既像超类,又像接口:
abstract class AbstractAnimal {
abstract void sound();
void breathe() {
System.out.println("呼吸");
}
}
| 特性 | 类 | 抽象类 | 接口 |
|---|---|---|---|
| 成员变量 | ✅ | ✅ | ❌(常量) |
| 构造方法 | ✅ | ✅ | ❌ |
| 多继承 | ❌ | ❌ | ✅ |
| 方法实现 | ✅ | ✅ | 有限支持 |
适合“同一类事物”
Animal
├── Dog
└── Cat
适合“跨类别行为”
Flyable
├── Bird
├── Plane
└── Superman
class Bird extends Animal implements Flyable, Serializable {}
✅ 核心关系总结:
如果你需要:
可以继续问我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。