Sam*_*ijo 14
没有继承权.继承是一种"is-a"关系(嗯,有时甚至不是"is-a"关系,如下面的链接所示).立方体不是正方形,正方形不是立方体.
你将如何构建,这取决于你如何建模.你可以选择像立方体这样的东西有6个正方形(一个立方体不是,它有6个正方形;一个构图),或者一个立方体有一个侧面尺寸,就像方形一样.但是一旦没有"是-a",继承就会成为危险区域......
此外,在继承中,对基类有效的所有内容必须对派生类有效.这是Square扩展矩形问题.例如:
假设Cube继承Square:如果你的Square有一个方法changeArea(double area)和getSide(),那么Cube应该是可能的.但事实并非如此,因为立方体的面积是正方形面积的6倍(它有6个正方形).
假设Square继承Cube:如果你的Cube有一个setVolume(双卷)方法,一旦它没有音量,你的方块就会被打破
最后,如果要使用继承,可以创建GeometryObjectWithEqualSides对象,然后两者都可以继承它.:)
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |