一种解决方法是使用接口来代替显式的超类。接口是一种定义了一组方法但没有实现的抽象类型。下面是一个使用接口的示例代码:
// 定义一个接口
interface Animal {
void eat();
void sleep();
}
// 实现接口的类
class Cat implements Animal {
@Override
public void eat() {
System.out.println("Cat is eating...");
}
@Override
public void sleep() {
System.out.println("Cat is sleeping...");
}
}
class Dog implements Animal {
@Override
public void eat() {
System.out.println("Dog is eating...");
}
@Override
public void sleep() {
System.out.println("Dog is sleeping...");
}
}
public class Main {
public static void main(String[] args) {
Animal cat = new Cat();
cat.eat();
cat.sleep();
Animal dog = new Dog();
dog.eat();
dog.sleep();
}
}
在上面的示例中,我们定义了一个Animal接口,并在Cat和Dog类中实现了该接口。在主函数中,我们通过Animal类型的引用来实例化Cat和Dog对象,并调用相应的方法。通过使用接口,我们可以摆脱显式的超类,并实现多态性。