【问题标题】:Class which extends abstract class扩展抽象类的类
【发布时间】:2015-11-15 13:10:30
【问题描述】:

我有一个问题,我有一个实现接口的抽象类,还有一个扩展第一个抽象类的类,但是我收到一个错误,它说我的第二个类必须从接口继承方法,我不希望那样,我也可以将它更改为抽象类,但是我不能在某些第三类中从该类调用构造函数,我该如何解决这个问题? 我在互联网上搜索了答案但找不到它,我不理解抽象类很好,所以我无法解决它。请帮助 (p.s.对不起我的英语,真的很糟糕)

编辑: 我有一个任务,要求我的第二个类需要扩展抽象类,并且我正在实现接口,因为他们还给了我主类,他们在我的第二个类中从构造函数创建对象,然后他们将它与类型一起使用接口,我不知道这是否有意义,代码很长,但我会给出一些代码:这是我的主类 (NationalTeam bulgaria = new NationalTeam("Bulgaria", Formation.F352, "Bulgaria"); nationalManager.setManagingTeam(bulgaria);)(bulgaria 必须是接口类型), 这也是我的第二类构造函数,它扩展了抽象类:(public NationalTeam(String name,Formation form,String country){ 超级(名称,编队); this.country=国家; })

【问题讨论】:

  • 你的抽象类或具体类都应该实现接口中定义的方法。最好抽象类应该这样做。
  • 欢迎来到 Stack Overflow!当询问错误时,引用实际错误。此外,显示类的声明可以戏剧性地阐明您的要求。请带上tour,环顾四周,通读help center,尤其是How do I ask a good question?

标签: java


【解决方案1】:

抽象类:抽象类可能有抽象方法,这意味着方法是没有实现的方法。

当您扩展抽象类 A 时,类 A 的方法必须由您的子类实现,比如说 B,除非您将子类 B 设为 anstract 类。

【讨论】:

    【解决方案2】:

    您需要考虑如何设计系统,而不是编译器如何强迫您。

    如果设计说第二类应该是抽象的,那就去做,然后最终在你的实现中实现你的抽象方法。

    另一方面,如果第二类是您的实现不是抽象的,则您必须提供实现以使其成为对象

    【讨论】:

      【解决方案3】:

      我的第二个类必须从接口继承方法,我不希望这样

      真的吗?那你当初为什么要声明接口呢?为什么抽象类需要实现接口?

      接口应该是更高层次的抽象。它是客户端代码和库之间的契约。它在客户端代码和库之间创建一个接口。这就像说“我有能力做界面要求我做的事情”。而你说你不想?

      所以有两种好方法和一种坏方法来解决这个问题:

      不错

      1. 不要扩展抽象类。因为如果你这样做,它可能没有意义。

      2. 抽象类不扩展接口。

      糟糕(这真的很糟糕)

      在接口中添加方法并将正文留空或返回随机值。同样,如果您没有必须,请不要这样做。

      【讨论】:

      • 我有一个任务,要求我的第二个类需要扩展抽象类,我正在实现接口,因为他们还给了我主类,他们在我的第二类中从构造函数创建对象然后他们将它与接口类型一起使用,我不知道这是否有意义,代码很长,但我会给出一些代码:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多