温馨提示×

温馨提示×

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

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

Java超类怎么使用

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

在 Java 中,“超类(Superclass)”指的是被继承的类,也叫父类。使用超类主要涉及 继承、方法重写、super 关键字、构造方法调用 等。下面用通俗的方式给你讲清楚。


一、什么是超类(Superclass)

class Animal {   // 超类 / 父类
    void eat() {
        System.out.println("动物在吃东西");
    }
}

class Dog extends Animal {  // 子类
    void bark() {
        System.out.println("狗在叫");
    }
}
  • Animal超类
  • Dog子类
  • 子类 自动拥有 超类的非 private 成员

二、基本使用方式(继承)

1️⃣ 使用 extends 继承超类

class Student extends Person {
}

✅ 子类可以:

  • 使用超类的 public / protected 属性和方法
  • 重写超类的方法
  • 调用超类的构造方法

❌ 不能:

  • 继承 private 成员
  • 继承构造方法

三、super 关键字怎么用(重点)

1️⃣ 调用超类的构造方法

class Person {
    String name;
    Person(String name) {
        this.name = name;
    }
}

class Student extends Person {
    Student(String name) {
        super(name);  // 调用父类构造方法
    }
}

⚠️ 注意:

  • super(...) 必须放在子类构造方法第一行
  • 如果父类没有无参构造,子类必须显式写 super(...)

2️⃣ 调用超类的普通方法

class Animal {
    void eat() {
        System.out.println("动物吃东西");
    }
}

class Dog extends Animal {
    void eat() {
        super.eat(); // 调用父类方法
        System.out.println("狗吃骨头");
    }
}

3️⃣ 访问超类的属性

class Father {
    int age = 50;
}

class Son extends Father {
    int age = 20;

    void print() {
        System.out.println(age);        // 20
        System.out.println(super.age);  // 50
    }
}

四、方法重写(Override)

1️⃣ 什么是方法重写

子类重新定义父类的方法

class Animal {
    void sound() {
        System.out.println("动物叫");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("猫叫");
    }
}

✅ 规则:

  • 方法名、参数、返回值必须一致
  • 访问权限不能更小
  • @Override 不是必须,但强烈推荐

五、多态中的超类使用(非常重要)

Animal a = new Dog(); // 父类引用指向子类对象
a.eat();

✅ 实际调用的是:

  • 子类重写的方法
  • 成员变量看左边(引用类型)

六、常见错误

❌ 1. 子类构造方法没调用父类构造

class A {
    A(int x) {}
}

class B extends A {
    B() {
        // 编译错误
    }
}

✅ 正确写法:

B() {
    super(10);
}

❌ 2. 试图重写 private 方法

class A {
    private void test() {}
}

class B extends A {
    void test() {} // 这不是重写,只是新方法
}

七、什么时候用超类?

✅ 适合用超类的情况:

  • 多个类有 共同属性和行为
  • 想用 多态
  • 想做 代码复用

例如:

  • AnimalDog / Cat
  • ShapeCircle / Rectangle
  • BaseControllerUserController

八、一句话总结

超类 = 父类,用来被继承;
extends 继承,super 调用父类构造和方法,
子类可重写父类行为,实现多态。

如果你愿意,我可以:

  • 真实项目例子
  • 对比 接口 vs 超类
  • 画一张 继承关系图
向AI问一下细节

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

AI