在 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:
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 调用超类public class Student extends Person {
private int score;
public Student(String name, int score) {
super(name); // 调用父类构造方法
this.score = score;
}
}
@Override
public void show() {
super.show(); // 调用父类方法
System.out.println("Score: " + score);
}
在 Java 中:
public class A { }
等价于:
public class A extends Object { }
Object 是最顶层的超类,提供:
toString()equals()hashCode()clone()✅ 适合放在超类中的内容:
❌ 不建议:
如果你愿意,我也可以:
你现在是刚学 Java,还是在写某个具体功能?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。