接口是java程序员人们在开发过程中会接触到,界面也属于java的基础知识,所以在程序员岗位面试中经常出现java接口面试题,今天的文章整理了一些经常考试的文章java接口面试题,有面试需要的朋友可以把以下内容作为自测题,java零基础小白也可以通过这篇文章学习java接口的相关知识点,费话不多说,咱们直接学习java接口面试题。
1、Java抽象类能实现界面吗?它们需要实现所有的方法吗?
答:是的,抽象类可以使用关键字implements实现接口。因为它们是抽象的,所以它们不需要实现所有的方法。一个好的方法是提供抽象基类和界面来声明类型。这样的例子,java.util.List接口和相应的java.util.Abstractlist抽象类。由于Abstractlist实现了所有通用方法,因此Linkedlist和Arraylist等具体实现可以直接实现List接口,而无需实现所有方法的负担。这对两个方面都有好处。您可以利用界面声明类型的优点和抽象灵活性在一个地方实现共同行为。
2、Java抽象类和界面有什么区别?
答:(1)界面只有定义,没有办法实现,java default方法体可以在1.8中定义,抽象类可以在抽象类中定义和实现。
(2)实现接口的关键词是implements,继承抽象的关键词是extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。因此,使用接口可以间接实现多重继承。
(3)界面强调特定功能的实现,而抽象类强调关系。
(4)接口成员变量默认为publicic static final,必须赋予初始值,不能修改;所有成员的方法都是public、abstract。在抽象类中,成员变量默认default可以在子类中重新定义或赋值;抽象方法由abstract修改,不能由private修改、static、synchronized和native必须以分号结束,没有花括号。
(5)接口用于未来维护和添加删除的常用功能,而抽象类更倾向于扮演公共角色,而不是修改未来对立面的代码。该功能需要在不需要积累的情况下使用抽象类。
3、什么时候选择抽象而不是接口?
答:这是抽象类和接口比较之前的后续问题。如果你知道语法差异,你可以很容易地回答这个问题,因为它们可以让你做出选择。当关注升级时,最好使用抽象类,因为不可能在发布的接口中添加新的方法。类似地,如果你的接口中有很多方法,你会对它们的实现感到头疼,并考虑提供一个抽象类作为默认实现。这是Java集合包中的模式,您可以使用Abstractlist,提供默认的List接口。
4、界面中定义方法的规则?
答:静态方法可以在界面中定义,必须实现静态方法。这种静态方法只能使用修改或不写public。例如:public static void test(){} 或 static void test(){}.///public省略不写默认也用public修改。可以任意定义静态方法的方法名,即main方法,例如:public static void main (String[] args){}。
对于普通方法,修饰符为: public, abstract, default和组合publict abstract。
5、请选择正确定义以下接口的方法(CD)
A:public static void main (String[] args);
B:private void test();
C:public void test2();
D:static void ()test3();
答案分析:A选项未提供默认实现;B选项采用private进行修改(接口中不允许使用private修改符进行修改)。
6、接口与类有哪些相似之处?
答:(一个接口可以有多种方法;(2)保存接口文件 .在java结尾的文件中,文件名使用接口名;(3)保存接口字节码文件 .在class结尾的文件中;(4)接口对应的字节码文件必须在与包名相匹配的目录结构中。
7、接口和类有什么区别?
答:界面不能用于实例对象;界面没有结构方法;界面中的所有方法都必须是抽象方法;除了成员变量,界面不能包含static和final变量;接口不是被类继承,而是被类实现;接口支持多继承。
8、标记界面在哪里使用?
答:(1)建立一个公共的父接口:就像Eventlistener接口一样,Java是由几十个其他接口扩展而来的 API,您可以使用标记接口来建立一组接口的父接口。例如,当一个接口继承了Eventlistener接口时,Java虚拟机(JVM)知道接口将用于事件的代理解决方案。
(2)向一个类添加数据类型:这种情况是标记接口的最初目的,没有必要定义任何接口方法来实现标记接口类型(因为没有办法标记接口),但这种类型通过多态性变成了接口类型。
以上是今天的文章java界面面试题总共有8个问题,相应的参考答案,希望大家能认真学习,顺利通过面试。