interface的作用

来源:互联网 发布:华夏网络 编辑:程序博客网 时间:2024/04/20 00:19

1 interface的作用是让使用inerface的人不知道它是怎么实现的,但调用这结方法就好使。就像是收歀台,它的方法就是收钱。你把钱给它,它给你零钱。你不用管它用的是电脑还是算盘。它也不想让你知道。反正功能实现了。
2 当你在使用inerface时,一定是用的implements里的方法,而且经常这么用。List l = new ArrayList() ; List是接口,ArrayList是它的实现。这后还很有可能有个方法是这样的 public void m1(List l){...}.这里写List是让这个方法更通用些,只要是List 的实现就能用。就好比这个款台,台子是一样的,但钱可以不一样。可是美元,也可以是元宝。但它们都是“钱”的实现,“钱”本身没有意义。
3 implements 和 extends 。implements是向老师学习,我可以拜很多的人为师,从而我就有了这些人的本领,但我还是我,不过本事大了些;extends 就是认爸爸。一个人就一个爸,同样我有了爸爸的本领,你可以替你爸去从军,但不能替别的老头子,我也不能再认别的爸了,但可以认老师,几个都没关系。这之间也许还有别的区别,不过我还没遇到过。
还有一些,我也说不来了。我还分不太清什么时候用接口或是抽象类,不过我用接口的情况多些。有人对我说,最好是一个类对应一个接口,我还不理解它的意义有多大,不过大家都是这么写的。换句话说,一个类好不要凭空就出来,最差也要继承个抽象类。这都是书本上的,记住了,但没什么感觉。

那么,什么时候应该使用抽象类,什么时候该使用接口呢?我们知道,接口中只能定义方法名,方法参数和返回值,以及静态变量。而抽象类中可以有方法的实现,也可以定义非静态的类变量。抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。所以,当你需要多继承特性时,那你只能使用接口;当你需要在父类中实现部分代码,但该类不希望被实例化时,那就设计为抽象类。一个基本原则是,首先考虑使用接口。