java简单编程思想

抽象类必须要被继承的

 

通过一个案例说明抽象类和接口额使用。在一个超市的管理软件中,所有的商品读具有价格,我们可以把商品的价格、设置和获取商品价格的方法,定义成一个抽象类Goods:

             abstract  class  Goods {

                      protected   double   cost;

                      abstract  public  void  setCost();

                      abstract public   double  getCost();

             }

某些商品,例如食品,具有一定保质期,我们需要为这类商品设置过期日期,并希望在过期时,能够通知过期消息。对于这样的行为,我们是否可以把他们也整合在类Goods中呢?显然这并不合适,因为对于其他商品来说,并不存在这样的行为,比如服装,而Goods中的方法,应该是所有子类公有的行为。我们可以将过期这样的行为,设计在一个借口Expiration中,Goods的子类可以选择是否实现该接口。

           interface Expiration {

                        void  setExpiration();

                        void expira();

             }

 

对于服装这类商品,我们需要继承抽象类Goods中的属性和方法,对于其中的抽象方法必须提供具体的实现,置于Expiration接口可以完全不管。而食品这样的商品,我们既要继承Goods抽象类,又要实现Expiration接口

 

class  Clothes  extends  Goods  {

         public  vod   setCost() {   ......   }

         public  double  getCost() {

               return cost;

         }

 

}

 

class Food extends Goods  implements  Expiration  {

   .....................

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值