Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop - Fatal编程技术网

在Java中设计继承

在Java中设计继承,java,oop,Java,Oop,我必须设计以下场景 2类-Square-方法-draw()和calculateLength(int a) 三角形有draw()和calculateLength(inta,intb)方法 在以后的开发中,添加了一个新类Circle-具有draw()和calculateLength(inta、intb、intc)方法。。。 因此,当涉及到Circle类时,应用程序应该强制该类实现draw和calculateLength 我正在考虑创建一个名为Shape的接口,该接口具有draw()方法,但当涉及到三

我必须设计以下场景

2类-Square-方法-draw()和calculateLength(int a) 三角形有draw()和calculateLength(inta,intb)方法

在以后的开发中,添加了一个新类Circle-具有draw()和calculateLength(inta、intb、intc)方法。。。 因此,当涉及到Circle类时,应用程序应该强制该类实现draw和calculateLength

我正在考虑创建一个名为Shape的接口,该接口具有draw()方法,但当涉及到三角形时,也应该强制实现该接口


建议我设计此场景的最佳方法…

接口的好处是它为其他类提供了一种保证,即接口中指定的方法X可以访问。根据你提供的信息,这在这里似乎并不重要。 除非接口中的方法是静态的(这对于您的示例来说似乎不太有用),否则您不能给它们一个方法体
在这种情况下,如果对象使用相同代码的部分,您将希望它们彼此位于相同的类/子类中。正方形和圆形的计算长度方法完全相同吗?我可以想象一个场景,在这个场景中他们会是。在这种情况下,从同一超类继承而不必重新编写方法/数据成员将非常有用。

如果您唯一的常用方法是
draw
,那么这是唯一可以在公共接口上运行的方法。为什么计算长度方法需要参数?难道每个实例都不应该记录适当的边长吗?本…这是设计所需的要求。。