抽象类、接口的具体例子

Java中抽象类的举例:

       StringBuffer和StringBuilder共同继承了一个父类AbstractStringBuilder。因为StringBuffer是线程安全的,StringBuilder是线程不安全的,这两个类中的数据、操作数据的行为都是一样的。StringBuffer为了保证他的线程安全,在他的每个方法上加了synchronized,即两个类的同名方法内要做了相同的操作,所以就把这个操作抽取到他们的父类AbstractStringBuilder类中。而所有的方法都是一样的,为什么AbstractStringBuilder是抽象类呢?查源码发现,只有toString()方法是抽象方法,我觉得应该是存放字符串的字符串在StringBuffer和StringBuilder这两个类中,而AbstractStringBuilder类只是提供一个工具,所以只声明一个方法名,数据在你们子类中,你们自己处理好了。这就是抽象类。

 

接口的例子:

   接口的例子就可以从AbstractStringBuilder的这个toString()方向去思考,因为StringBuffer和StringBuilder都需要将自己的数据转换成字符串,但是他们的数据类型又不同,只能各自去操作,所以呀,就让这些有相同的行为,但是具体的行为又不同的方法抽象出来,作为接口。

   Java中集合的父类list就是一个接口,因为每个集合都需要增删改查,但是集合本身又有差异,需要自己单独去处理,所以就把这些公共的增删改查的方法抽取出来,作为接口,让他们去实现,也算是集合的一种规范吧!

 

而在我们实际做项目的过程中?抽象类和接口怎么去用呢?

   我觉得在模块与模块之间,用接口去定义。把每个模块都要做的事提取出来,放在接口中,让处理这个模块的人自己去实现。比如说每个模块都要对数据库进行操作,那么我就把增删改查提取出来,放在一个接口中,让各个模块自己根据自己的实际需求去处理自己的方法就行了。

   而模块内部呢,可能有一些行为是相同的,相同的地方我去实现出来,避免子类重复实现,但是也有区别的方法,我声明一个方法体。这时候用一个抽象类,把行为相同用具体的方法去实现,不同的用方法名声明,让各自去实现好了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值