Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止接口在继承类中实现?_Java_Inheritance_Interface - Fatal编程技术网

Java 如何防止接口在继承类中实现?

Java 如何防止接口在继承类中实现?,java,inheritance,interface,Java,Inheritance,Interface,我该怎么做才能使只有D类不能得到I的方法呢。 我现在正在考虑在没有身体的情况下推翻D中所有的“我”方法 我的想法是正确的还是有更好的方法 编辑:D不希望接口I中包含的方法。A的其余方法是继承的。 A是基类。界面I是用于订购视频的界面B、C、E是具有不同权限的用户,D是管理员。 管理员无法订购视频,因此不需要界面所携带的方法。如果A实现了I,那么A或A的任何子类的任何用户都应该能够期望实现I的方法。这是A与课程中其他课程的“合同”的一部分 对于从A继承的D,它应该是A的“特例”,并且应该实现A定义

我该怎么做才能使只有D类不能得到I的方法呢。 我现在正在考虑在没有身体的情况下推翻D中所有的“我”方法

我的想法是正确的还是有更好的方法

编辑:D不希望接口I中包含的方法。A的其余方法是继承的。 A是基类。界面I是用于订购视频的界面B、C、E是具有不同权限的用户,D是管理员。
管理员无法订购视频,因此不需要界面所携带的方法。

如果A实现了I,那么A或A的任何子类的任何用户都应该能够期望实现I的方法。这是A与课程中其他课程的“合同”的一部分

对于从A继承的D,它应该是A的“特例”,并且应该实现A定义的所有功能。继承必然是一种“加法”工具;您可以获得基类中的所有内容,并且可以更改或添加子类中的内容

你说你想减去一些东西——这与面向对象编程相反,也与语言中实现继承(和实现)的方式相反


因此,我认为最好的答案是“是的,有一个更好的方法。”我们不能用这么多的信息来判断它是什么。如果a实现了I,那么a或a的任何子类的任何用户都应该能够期望I的方法被实现。这是A与课程中其他课程的“合同”的一部分

对于从A继承的D,它应该是A的“特例”,并且应该实现A定义的所有功能。继承必然是一种“加法”工具;您可以获得基类中的所有内容,并且可以更改或添加子类中的内容

你说你想减去一些东西——这与面向对象编程相反,也与语言中实现继承(和实现)的方式相反


因此,我认为最好的答案是“是的,有一个更好的方法。”我们不能用这么多的信息来判断它是什么。如果a实现了I,那么a或a的任何子类的任何用户都应该能够期望I的方法被实现。这是A与课程中其他课程的“合同”的一部分

对于从A继承的D,它应该是A的“特例”,并且应该实现A定义的所有功能。继承必然是一种“加法”工具;您可以获得基类中的所有内容,并且可以更改或添加子类中的内容

你说你想减去一些东西——这与面向对象编程相反,也与语言中实现继承(和实现)的方式相反


因此,我认为最好的答案是“是的,有一个更好的方法。”我们不能用这么多的信息来判断它是什么。如果a实现了I,那么a或a的任何子类的任何用户都应该能够期望I的方法被实现。这是A与课程中其他课程的“合同”的一部分

对于从A继承的D,它应该是A的“特例”,并且应该实现A定义的所有功能。继承必然是一种“加法”工具;您可以获得基类中的所有内容,并且可以更改或添加子类中的内容

你说你想减去一些东西——这与面向对象编程相反,也与语言中实现继承(和实现)的方式相反


所以我认为最好的答案是“是的,有更好的方法。”我们不能仅凭这么多的信息就知道它是什么

interface I
class A implements I
class B extends A
class C extends A
class D extends A
class E extends A
这与:

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

我将通过以下方式完成这项工作:

interface I
class A implements I
class B extends A
class C extends A
class D extends A
class E extends A
这与:

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

我将通过以下方式完成这项工作:

interface I
class A implements I
class B extends A
class C extends A
class D extends A
class E extends A
这与:

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

我将通过以下方式完成这项工作:

interface I
class A implements I
class B extends A
class C extends A
class D extends A
class E extends A
这与:

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

您可能希望使用类似的工具,可用于隐藏或合并接口。

您可能希望使用类似的工具,可用于隐藏或合并接口。

您可能希望使用,可用于隐藏或合并接口。

您可能希望使用类似的功能,可用于隐藏或合并接口。

您可能希望重新考虑您的设计。如果
D
扩展
A
,那么
D
应该做
A
可以做的一切,比如实现接口
I
。这是面向对象编程中非常重要的基础

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

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

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

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

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

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

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

你可能想重新考虑你的设计。如果
D
扩展
A
,那么
D
应该做
A
可以做的一切,比如实现接口
I