在 Java 中,“超类”(superclass,也叫父类、基类)主要用于代码复用、统一行为、以及面向对象的抽象设计。下面从“什么时候该用”和“典型场景”两个角度说明。
当多个类存在重复代码时,应把公共部分抽到超类。
示例:
class Animal {
String name;
void eat() { System.out.println("吃东西"); }
}
class Dog extends Animal {}
class Cat extends Animal {}
✅ 使用超类可以:
如果你希望用“同一种类型”处理不同子类对象。
Animal a1 = new Dog();
Animal a2 = new Cat();
✅ 超类是实现多态的基础
✅ 常用于:
当子类“必须实现某些方法”,但实现方式不同。
abstract class Shape {
abstract double area();
}
✅ 超类用于:
遵循开闭原则(对扩展开放,对修改关闭)
class BaseService {}
class UserService extends BaseService {}
✅ 不修改原代码,通过继承增强功能
例如:
HttpServletThreadExceptionclass MyServlet extends HttpServlet {}
✅ 这是 Java 生态的常见用法
❌ 只是“想复用一点点代码”
→ 优先考虑 组合(has-a)
// 不推荐
class A extends B {}
// 推荐
class A {
B b;
}
❌ 类之间不是 “是一个(is-a)” 关系
例如:
Person 继承 Car ❌当你发现多个类“是一类东西”,并且有共同特征或行为时,就用 Java 超类。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。