椎体的三种抽象方法

题目: 编写一个椎体类,可以计算它的体积。

方法一:class 椎体

{

    数据成员:    高;

                         底面积;

    方法:           computeVolume(){   return  1/3*高*computeArea(); };              

              

                      computeArea(){  return 0;   };

                }

}

the point is : how can we compute 底面积?   so we need to add a function to compute 底面积 ;然而对于不同形状的底有不同的面积计算方式,要怎么解决呢?重载!        

class 圆锥 extends 椎体

  {

        数据成员:   半径;

         方法: computeArea(){  return 3.14*半径*半径 ;   };

 }

class 三棱锥 extends 椎体

{

        数据成员:  底边长;

                            底边高;

        方法:computeArea(){    return 1/2 * 底边长*底边高 ;     };

}

          main(){          

            椎体   a = new  圆锥();

            System.out.println(a.computeVolume().toString());

            椎体   b = new 三棱锥();

            System.out.println(b.computeVolume().to.String());

          }                                        

以上体现的我刚刚学会的上转型解决方案,可能且很大可能 有错误,待日后修改。

1、对象的上转型对象 只能 具有 从 父类继承 而来 的 或者 重写 的 数据成员 和 方法 。

            

2、对象的上转型对象一般都是要重写方法的,这也是上转型存在的理由。

另外一种抽象,在我看来更加理性专业 , 但本质和方法一一样,就不作为方法二了。将椎体的属性划分为 几何形状 + 高 。

几何形状 是一个抽象类 ,是上转型对象,仅有一个必须重写的computeArea()方法,ok,接下来就是增加继承它的子类,比如三角形,梯形等等 。

方法二:  


转载于:https://my.oschina.net/denkvermoegen/blog/512494

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值