有一个基类图形类,有四个继承了图形类的子类圆形类,面积和周长这两个特征应该设为那个类的属性?
显然,每个图形都会有面积和周长,那么这么看的话是不是应该将其设为图形类的属性?但是如果设置为图形类的属性,为了让子类继承就需要将其设置为public的,可是在圆形类中面积与周长都跟对象的半径属性直接相关,如果面积和周长是public的就很奇怪,因为如果面积和周长不应该是可以随意修改的,但是如果设置为圆形类的属性有感觉很不合适,那么是应该将其设置为图形类的属性还是应该设置为圆形类的属性,还是不设置这两个属性,只留下两个抽象方法计算这两个属性?
可以设置为属性,子类继承属性,又不继承值和计算方法。
计算周长和面积的抽象方法和属性不冲突。。
周长和面积可以在子类的构造方法中计算赋值。
子类实现的计算周长和面试的方法,可以直接返回这两 个值