深入理解abstract class和interface

 1   interface的作用是让使用inerface的人不知道它是怎么实现的,但调用这结方法就好使。就像是收歀台,它的方法就是收钱。你把钱给它,它给你零钱。你不用管它用的是电脑还是算盘。它也不想让你知道。反正功能实现了。
2   当你在使用inerface时,一定是用的implements里的方法,而且经常这么用。List l = new ArrayList () ; List是接口,ArrayList是它的实现。这后还很有可能有个方法是这样的 public void m1(List l){...}. 这里写List是让这个方法更通用些,只要是List 的实现就能用。就好比这个款台,台子是一样的,但钱可以不一样。可是美元,也可以是元宝。但它们都是“钱”的实现,“钱”本身没有意义。
3   implements 和 extends 。 implements是向老师学习,我可以拜很多的人为师,从而我就有了这些人的本领,但我还是我,不过本事大了些;extends 就是认爸爸。一个人就一个爸,同样我有了爸爸的本领,你可以替你爸去从军,但不能替别的老头子,我也不能再认别的爸了,但可以认老师,几个都没关系。这之间也许还有别的区别,不过我还没遇到过。
  还有一些,我也说不来了。我还分不太清什么时候用接口或是抽象类,不过我用接口的情况多些。有人对我说,最好是一个类对应一个接口,我还不理解它的意义有多大,不过大家都是这么写的。换句话说,一个类好不要凭空就出来,最差也要继承个抽象类。这都是书本上的,记住了,但没什么感觉。
   以上只是我的一点认识,用的都是土话,仅供参考。
   那么,什么时候应该使用抽象类,什么时候该使用接口呢?我们知道, 接口中只能定义方法名,方法参数和返回值,以及静态变量。而抽象类中可以有方法的实现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。所以,当你需要多继承特性时,那你只能使用接口;当你需要在父类中实现部分代码,但该类不希望被实例化时,那就设计为抽象类。一个基本原则是,首先考虑使用接口。
      有人说面向对象编程就是面向接口编程,这话一点儿也不假。 接口应该体现了面向对象的核心思想在里面,换句话讲应该说接口抽象出具体事物的外在共性,然而不同的类的相同的接口函数的内在实现机制是不同的,这又体现了具体事物的特性。举个例子,对于所有的商店都提供卖东西的功能,这就可以抽象成一个接口,这个接口里面可以提供buy()这个函数,然而各个商店的卖东西是不一样的,也就是BUY()函数实现不一样的!不好意思,我要下了,改天有空接着写!
  
       接口就是给高级设计人员用的,他用接口可以快速的描述一个系统,定义好各个组件之间的协作规则,然后在具体实现阶段实现这些接口,可以作为一个隔离层,隐藏底层实现细节。
还有个弥补多个类继承的功能。
去看看jdbc,你就能体会到接口的作用。
不过我觉得应该注意一点:“变成语言上的定义,改变,或者进步,都有一个目标,那就是让代码编写更容易,让代码修改更容易,让不熟悉够架的人取读懂代码更困难”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值