温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

超类和子类有何关系

发布时间:2026-07-25 13:58:09 来源:亿速云 阅读:108 作者:小樊 栏目:编程语言

在面向对象编程(OOP)中,超类(Superclass)子类(Subclass)继承关系中的两个核心概念,它们的关系可以概括为:子类继承并扩展超类


一、基本定义

  • 超类(父类 / 基类)
    被继承的类,通常包含通用属性和方法

  • 子类(派生类)
    继承超类的类,通常包含更具体、更特殊的属性和方法


二、核心关系

1. 继承关系(is-a 关系)

子类 “是一种” 超类。

class Animal { }
class Dog extends Animal { }

这里的关系是:
Dog is an Animal


2. 成员继承

子类会自动拥有超类的:

  • private 的属性和方法
  • 构造方法 不会 被继承,但可以被调用(super()
class Animal {
    protected String name;
    public void eat() { }
}

class Dog extends Animal {
    // 可以直接使用 name 和 eat()
}

3. 方法重写(Override)

子类可以重写超类的方法,以实现自己的行为。

class Animal {
    public void sound() {
        System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }
}

4. 扩展功能

子类可以在超类基础上新增属性和方法

class Dog extends Animal {
    public void fetch() {
        System.out.println("Dog fetches ball");
    }
}

5. 多态性(Polymorphism)

超类引用可以指向子类对象。

Animal a = new Dog();
a.sound(); // 实际调用 Dog 的 sound()

三、超类与子类的对比

对比项 超类 子类
抽象程度 更抽象、更通用 更具体、更特殊
继承方向 被继承 继承超类
功能范围 多(继承 + 扩展)
可替换性 可被子类替换 不可替换超类

四、注意事项

  • 子类 不能访问 超类的 private 成员
  • Java 中 单继承(一个类只能有一个直接超类)
  • 构造顺序:先超类,后子类

五、总结一句话

超类是子类的抽象基础,子类继承并扩展超类,形成“is-a” 的层次关系。

如果你愿意,我也可以用 C++ / Python / UML 类图 再给你讲一遍。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI