如果基类和子类实现相同的接口,并且基类中提供了抽象方法的方法实现,那么是否还需要在子类中提供实现?
在父类和子类中都实现相同的接口是没有必要的,因为如果你在父类中实现了它,那么子类也会有相同的方法,但如果你想覆盖它,你可以覆盖它。
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();
}
}
//输出
这是平行四边形我们必须在子类中提供实现吗?
不需要,如果一个类继承另一个类,它已经拥有父类声明的所有(public和protected)方法。
但是您可以提供这个方法的不同实现。在这种情况下,来自父类的方法将被覆盖。
不需要,因为子类已经在基类中实现了该方法