gpt4 book ai didi

java - 如何防止接口(interface)在继承类中实现?

转载 作者:行者123 更新时间:2023-12-01 23:13:55 25 4
gpt4 key购买 nike

interface I
class A implements I
class B extends A
class C extends A
class D extends A
class E extends A

我该怎么做才能只有类 D 无法获取 I 的方法。我目前正在考虑重写 D 中“I”的所有方法,而无需主体。

我的思考方向正确还是有更好的方法?

编辑:D只是不想要接口(interface)I中包含的方法。A的其余方法都是继承的。A 是基类。界面I是视频点播界面B、C、E是不同权限的用户,D是管理员。管理员无法点播视频,因此不需要接口(interface)携带的方法。

最佳答案

您可能想重新考虑您的设计。如果D扩展了A,那么D应该做A可以做的一切,比如实现接口(interface)I.这是非常重要的基础Liskov Substitution Principle面向对象编程。

您可以重新设计您的设计,以便在保留逻辑继承的同时仍然共享相关代码:

    A
/|
D A' implements I
/|\
B C E

也有可能(正如 @OliCharlesworth 指出的那样)使用组合的解决方案可能更有用。这取决于具体情况,但如果 B,C,DE 使用 A 而不是它们 A 成分更合适。

关于java - 如何防止接口(interface)在继承类中实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511477/

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