gpt4 book ai didi

java - 扩展非抽象类并在类中实现具有相同方法签名的接口(interface)

转载 作者:行者123 更新时间:2023-11-30 02:58:32 26 4
gpt4 key购买 nike

我有以下类和接口(interface)

public class A {
public void printSomething() {
System.out.println("printing from A");
}
}

interface B {
public void printSomething();
}

public class C extends A implements B {
public static void main(String aa[]) {
C c = new C();
c.printSomething();
}
}

当我编译上面的代码时,它编译没有任何错误。当我运行该程序时,它会打印以下内容。

printing from A

我期望编译器给出类似的错误,就像我的类 C 没有扩展类 A 时遇到的以下错误

 C.java:1: error: C is not abstract and does not override abstract method printSomething() in B public class C implements B{
^
C.java:8: error: cannot find symbol
c.printSomething();
^
symbol: method printSomething()
location: variable c of type C
2 errors

我知道当一个类实现一个接口(interface)时,我们需要在类中定义接口(interface)方法或声明类抽象。但是,通过扩展一个类(具有相同签名的已定义方法),我如何能够克服此编译器警告并运行该程序。

最佳答案

这样做绝对没问题,而且非常常见。

您正在使用类 A 作为实现接口(interface) B 指定的接口(interface)的工具。 p>

这种模式有利于模块化和代码重用的潜力。

关于java - 扩展非抽象类并在类中实现具有相同方法签名的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com