Java中父类和子类均实现接口

3
如果基类和子类实现相同的接口,并且基类中提供了抽象方法的方法实现,那么是否还需要在子类中提供实现?

1
为什么不自己试试呢? - pratikabu
4个回答

1

如果父类中被覆盖的方法是私有的,会怎样? - Prashant
如果你试图将方法设置为私有,你会看到编译器错误,因为你正在降低该方法的可见性。 - Suresh Atta

1

在父类和子类中都实现相同的接口是没有必要的,因为如果你在父类中实现了它,那么子类也会有相同的方法,但如果你想覆盖它,你可以覆盖它。

public interface Shape {
    void draw();
}

class Parallelogram implements Shape {
    public void draw() {
        System.out.println("This is Parallelogram");
    }
}

public class Square extends Parallelogram {
    @Override
    public void draw() {
        System.out.println("This Parallelogram is Square");
    }

    public static void main(String args[0]) {

        Square square = new Square();
        square.draw();
    }

}

//输出

这个平行四边形是正方形。
public class Rhombus extends Parallelogram {

    public static void main(String args[0]) {

        Rhombus rhombus = new Rhombus();
        rhombus.draw();
    }
}

//输出

这是平行四边形

1

我们必须在子类中提供实现吗?

不需要,如果一个类继承另一个类,它已经拥有父类声明的所有(public和protected)方法。

但是您可以提供这个方法的不同实现。在这种情况下,来自父类的方法将被覆盖。


0

不需要,因为子类已经在基类中实现了该方法


如果子类对同样的东西有不同的实现,会怎样呢? - Suresh Atta
然后你也可以在子类中重写那个方法。 - codeLover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接