温馨提示×

温馨提示×

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

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

Java超类如何定义

发布时间:2026-09-01 12:52:20 来源:亿速云 阅读:85 作者:小樊 栏目:编程语言

在 Java 中,“超类”(Superclass)通常是指被其他类继承的类,也叫父类基类。定义超类本身和普通类的定义方式是一样的,只是它会被 extends 使用。

下面从几个层面说明如何定义和使用 Java 超类。


一、最基础的超类定义

public class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public void eat() {
        System.out.println(name + " is eating.");
    }

    public String getName() {
        return name;
    }
}

这就是一个普通的超类,可以被其他类继承:

public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }

    public void bark() {
        System.out.println(getName() + " is barking.");
    }
}

二、使用 protected 让子类访问成员

超类通常会把希望子类使用但不对外暴露的成员声明为 protected

public class Animal {
    protected String name;

    protected void sleep() {
        System.out.println(name + " is sleeping.");
    }
}

子类可以直接使用:

public class Cat extends Animal {
    public void test() {
        name = "Tom";
        sleep();
    }
}

三、抽象超类(Abstract Superclass)

如果超类只定义结构,不实现具体行为,可以使用 abstract

public abstract class Shape {
    protected String color;

    public Shape(String color) {
        this.color = color;
    }

    public abstract double area();
}

子类必须实现抽象方法:

public class Circle extends Shape {
    private double r;

    public Circle(String color, double r) {
        super(color);
        this.r = r;
    }

    @Override
    public double area() {
        return Math.PI * r * r;
    }
}

四、使用 super 调用超类

1. 调用超类构造方法

public class Student extends Person {
    private int score;

    public Student(String name, int score) {
        super(name); // 调用父类构造方法
        this.score = score;
    }
}

2. 调用超类方法

@Override
public void show() {
    super.show(); // 调用父类方法
    System.out.println("Score: " + score);
}

五、Object 是所有类的超类

在 Java 中:

public class A { }

等价于:

public class A extends Object { }

Object 是最顶层的超类,提供:

  • toString()
  • equals()
  • hashCode()
  • clone()

六、定义超类的最佳实践

✅ 适合放在超类中的内容:

  • 公共属性
  • 公共方法
  • 通用逻辑
  • 模板方法

❌ 不建议:

  • 过度设计
  • 超类过于庞大
  • 滥用继承(优先考虑组合)

如果你愿意,我也可以:

  • UML 图说明继承关系
  • 对比 超类 vs 接口
  • 结合 实际项目示例讲解

你现在是刚学 Java,还是在写某个具体功能?

向AI问一下细节

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

AI