在面向对象编程(OOP)中,超类(Superclass) 和 子类(Subclass) 是继承关系中的两个核心概念,它们的关系可以概括为:子类继承并扩展超类。
超类(父类 / 基类)
被继承的类,通常包含通用属性和方法。
子类(派生类)
继承超类的类,通常包含更具体、更特殊的属性和方法。
子类 “是一种” 超类。
class Animal { }
class Dog extends Animal { }
这里的关系是:
✅ Dog is an Animal
子类会自动拥有超类的:
private 的属性和方法super())class Animal {
protected String name;
public void eat() { }
}
class Dog extends Animal {
// 可以直接使用 name 和 eat()
}
子类可以重写超类的方法,以实现自己的行为。
class Animal {
public void sound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
}
}
子类可以在超类基础上新增属性和方法。
class Dog extends Animal {
public void fetch() {
System.out.println("Dog fetches ball");
}
}
超类引用可以指向子类对象。
Animal a = new Dog();
a.sound(); // 实际调用 Dog 的 sound()
| 对比项 | 超类 | 子类 |
|---|---|---|
| 抽象程度 | 更抽象、更通用 | 更具体、更特殊 |
| 继承方向 | 被继承 | 继承超类 |
| 功能范围 | 少 | 多(继承 + 扩展) |
| 可替换性 | 可被子类替换 | 不可替换超类 |
private 成员超类是子类的抽象基础,子类继承并扩展超类,形成“is-a” 的层次关系。
如果你愿意,我也可以用 C++ / Python / UML 类图 再给你讲一遍。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。