Java接口和抽象类的区别?
一、Java接口和抽象类的相同点
(1)都不能被实例化。
(2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。
二、Java接口和抽象类的不同点
(1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
(2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
(3)接口强调特定功能的实现,而抽象类强调所属关系。
(4)接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
在实际项目开发时,通常说的调用“接口”是不是不等同于java里的“接口”的概念?
这两个接口,概念虽然不一样,但是要完成的功能却是一致的。项目开发中的“接口”,通常指一组程序功能集合。通常用在不同系统之间的数据交换。比如,某系统的客户查询接口。java中得“接口”,是一个语法概念。生活中也有“接口”的概念,比如电源接口,usb接口。不管是那种形式的接口,他们的功能是一样的。
1、接口都是一种规范,定义了一系列的功能。
2、接口不能直接使用,必须实现后才能使用。
3、调用接口者,不必关心接口的具体实现。例1,A系统定义了一个客户查询接口,B系统可以通过客户号,调用A系统的查询接口,得到客户信息。分析:1、客户查询接口,需要定义查询数据,和返回数据的格式。2、客户查询接口被A系统实现了。3、B系统不必了解,接口是怎么实现的。例2,java中Connection接口。分析:1、Connection接口中定义了一系列方法。2、Connection接口被不同的数据库厂商实现了。3、我们不必了解Connection接口是怎么实现的。例3,usb接口分析:1、usb接口定义了数据传输的格式。2、usb接口被不同的设备实现了。3、我们不必了解usb接口是怎么实现的。
接口的定义?
1、Java语言中存在的结构,有特定的语法和结构。java接口作用:1、利于代码的规范这样做的目的一方面是为了给开发人员一个清晰的指示,告诉他们哪些业务需要实现;同时也能防止由于开发人员随意命名而导致的命名不清晰和代码混乱,影响开发效率。
2、有利于对代码进行维护可以一开始定义一个接口,把功能菜单放在接口里,然后定义类时实现这个接口,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。
3、保证代码的安全和严密一个好的程序一定符合高内聚低耦合的特征,能够让系统的功能较好地实现,而不涉及任何具体的实现细节。这样就比较安全、严密一些,这一思想一般在软件开发中较为常见。扩展资料:关于java接口的使用规范:1、接口中可以定义常量,不能定义变量,接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。2、 接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。3、 接口不能实例化,接口中不能有构造。
4、 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
5、 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。