关于子类和父类实现同一个接口

这个问题是由下面的代码引出的:

 

public class StartupListener extends ContextLoaderListener
    implements ServletContextListener {
……
}

 

可以看到,ContextLoaderListener已经实现了ServletContextListener这个接口, 而StartupListener继承了ContextLoaderListener.为什么 StartupListener还要实现ServletContextListener接口?(它的父类不是已经实现这个接口了么?)

 

简单的说,上面的例子是下面这样的:

 

B  implements  A

C extends  B  implements  A

 

就是说红色的代码有什么用?

 

我原来认为是多余的。实际上, 子类再次实现父类实现的接口是为了强制子类重写父类中实现的所有接口中的方法

好的,我可以帮您回答这个问题。 首先,我们可以定义一个Car类作为父类,它可以有一些基本属性和方法,比如: ``` public class Car { String brand; int price; public void start() { System.out.println("Car is starting..."); } public void stop() { System.out.println("Car is stopping..."); } } ``` 接下来,我们可以定义一个子类,例如SUV类,它可以继承Car类的属性和方法,并且可以有一些自己的属性和方法。如下所示: ``` public class SUV extends Car { int passengerNum; public void driveOffroad() { System.out.println("SUV is driving off-road..."); } } ``` 在这个例子中,SUV类继承了Car类,并且添加了一个新的属性passengerNum和一个新的方法driveOffroad()。 此外,您提到要实现一个接口,那么我们可以定义一个Driveable接口,用于表示可以驾驶的汽车。如下所示: ``` public interface Driveable { void drive(); void stop(); } ``` 然后,我们可以让Car类实现Driveable接口,这样所有的子类也都可以实现这个接口。如下所示: ``` public class Car implements Driveable { String brand; int price; public void start() { System.out.println("Car is starting..."); } public void stop() { System.out.println("Car is stopping..."); } public void drive() { System.out.println("Car is driving..."); } } ``` 这样,我们就定义了一个具有父类子类,并实现接口的Car类。 希望我的回答能够帮助到您。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值