java中的接口到底是什么?

java中的接口到底是什么?,第1张

Java中的接口就是一个写好方法,但方法没有内容的类。
如:
class
A
{

public
int
getA() ;

public
int
getB()
;
}
这个类中还可以写更多的方法,但是不能在方法中写内容,这就是接口,也叫做接口类。
那么你可能会觉得,这样的话接口有什么作用呢?
其实,接口的作用,就好像是一张购物单。
在开发一个工程中,当不同的程序员引用了这个接口,
就代表是他领到了这个购物单。
去购物的时候,就必须要按照这个购物单去购物。
而至于,如何获得购物单中的商品,那么就要考不同的程序员在方法中填写不同的内容了。

这么做的一个好处就是,一个接口,可以让很多程序员调用,
而可以互相不干扰的去填写方法内容,来完成不同的任务。
并且,在不同人去完成不同事情时,保证了方法名称的一致性。

List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和 *** 作任何类型对象的元素列表。
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存 *** 作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快
List 适用于按数值索引访问元素的情形,以特定次序来持有元素,可有重复元素。 Set 无法拥有重复元素,内部排序。Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。

一些编译好的类和接口都被封装成jar包,以便于与开发,你可以随便找一个jar包解压出来看看,至于接口,我只听说过实现接口,没听说过类继承接口的。接口只能从接口继承。一个类只能继承一个类,但是可以同时实现多个接口。

基类就是父类,Object类是所有类的父类,子类继承父类,继承并重写父类的方法和非私有成员变量。举个例子,车是父类,能走,有轮子是他的方法和属性,汽车,自行车,火车就是子类,继承了父类走的方法,又重载了轮子的个数这个属性。大概就是这样,不理解可以看看Java核心技术第一卷

接口是一组方法的集中定义,但是在接口中只定义方法本身,不定义的方法的实现过程。
类是生成实例对象的模板。它和接口的关系是,类是接口实现的载体,即引入接口的类负责接口方法的实现。
Java支持单重继承,可以减小编程中的复杂度;但是,可以实现多重接口。
类A由类B继承而来,则A是B的子类,B是A的父类。

这两者区别还是很大的,最好不要这样理解。

接口的定义只有方法名,没有具体实现,而类实现接口的话,必须实现接口里面的所有方法

继承的话,类包含父类的所有方法,不需要实现,而是相当于父类的方法就是子类的方法。

两者的关联,都可以写同接口或者父类的同样的方法,只是如果是接口,就叫做实现方法,如果是父类,就叫做重载方法。

用法区别:继承:比如类A里面要做一个减法运算,减去10,而类B里面也要做同样的减法运算,也是减去10,这时,为了更好的利用代码,就提取一个父类C,A和B都继承C,那么A和B都不需要写这个方法,就可以调用减去10的方法了。(而且你只写了一次减法运算,如果不用继承,就得在A和B里面分别写)

接口:同类A里面要做一个减法运算,但是减去5,而类B里面也要做同样的减法运算,但是减去8,这时,因为两个函数虽然都是减法运算,但是实现的时候减的数值不一样,就提取一个接口C,A和B都实现C的减法,A里面写减法函数减去5,B里面写减法函数减去8(这种情况如果用继承就做不到啦!)

或许上面用接口,AB都写了两次,那倒不如不用接口C,其实不然,那么这就关于到接口的作用了,这就不是很简单的能说清楚了。因为有时候,为了达到一定效果,必须要用接口。具体的,等你以后碰到了就会知道了。

抽象类接口相当于定义的一种标准,尤其是接口,在开发中,往往是按模块进行开发的,那么久必须分工合作。每个模块又是关联的,这时,各个模块之间我们就通过接口来打交道,有个好处是,我们在使用其他模块的方法的时候,直接可以调用接口,只要将对应的参数传入即可,你不需要去了解他究竟是怎么实现的,这就是由具体的实现类去负责,父类是某些类所共有的属性或方法的提取,子类是为了满足该类的一些特殊属性或者是方法。比如图形,三角形,正方形。图形,就是一个父类;三角形,正方形是气子类。我们可以在图形里面提供面积的方法。但是三角形他还有自己特有的属性和方法,比如说边,面积计算的方法需要覆盖父类的,可以作为三角形的属性,正方形边长是属性,面积计算的方法也需要有自己的方法。

子类化(subclass) 和 子类型化(subtype)的区别[原创,未经作者许可不得转载]
subtype具有更加严格的要求,就是父类的任何子类都可以在运行时可无缝的代替父类的工作,子类的接口具有更加相比父类更加强的前置条件,父类的接口在子类中得到继承,并且不得在子类中修改父类方法的签名子类型化的好处是实现依赖倒置,参见参考读物的Bicycle一图,
subclass主要目的为了更加方便的重用,通常不需要符合Is-a的要求,如果采用组合,那么必须手写大量接口,然后Delegate给这个成员变量,如果父类很大的话,使用组合需要大量的工作量,而采用继承则方便很多,另外通过继承可以访问protected的成员及其方法,这也是组合所不具备的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10554152.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存