我想从超类继承特定实例,而不是全部。

例如:

public class Snake extends Reptile {
    private boolean hasLegs  = false;

    public Snake(double[] legLength, double tailLength, String color, boolean hasScales, boolean hasLegs) {
        super(legLength, tailLength, color, hasScales);
        this.hasLegs = hasLegs;
    }


我想从Reptile类继承所有实例变量,除了double[] legLength(因为蛇没有腿)。

如何在不更改Reptile类中的代码的情况下做到这一点?

谢谢。

最佳答案

我认为您是在问如何不必将不需要的所有参数传递给父类。您不能这样做,您需要全部传递它们,但这并不意味着您必须在子类中公开它们:

public Snake(double tailLength, String color, boolean hasScales) {
    super(null, tailLength, color, hasScales);
    this.hasLegs = false;
}


您不仅可以从父级那里获取一些变量,还可以全部获取。您可以将它们设置为对子类有意义的值。这就是重点!

关于java - 如何在Java中继承特定的实例变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60031093/

10-10 16:00