接口是java程序员们在开发中会接触到的,接口也是属于java中的基础知识了,所以在程序员岗位面试中会经常出现java接口面试题,今天这篇文章整理了一些常考的java接口面试题,有面试需要的朋友们可以将下面的内容作为自测题,java零基础的小白们也可以通过这篇文章来学习java接口的相关知识点,费话不多说,咱们直接学习java接口面试题。
1、Java抽象类可以实现接口吗?它们需要实现所有的方法吗?
答:可以,抽象类可以通过使用关键字implements来实现接口。因为它们是抽象的,所以它们不需要实现所有的方法。好的做法是,提供一个抽象基类以及一个接口来声明类型。这样的例子是,java.util.List接口和相应的java.util.AbstractList抽象类。因为AbstractList实现了所有的通用方法,具体的实现像LinkedList和ArrayList不受实现所有方法的负担,它们可以直接实现List接口。这对两方面都很好,你可以利用接口声明类型的优点和抽象类的灵活性在一个地方实现共同的行为。
2、Java抽象类和接口有何不同?
答:(1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
(2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
(3)接口强调特定功能的实现,而抽象类强调所属关系。
(4)接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
(5)接口被用于常用的功能,便于日后维护和添加删除,而抽象类更倾向于充当公共类的角色,不适用于日后重新对立面的代码修改。功能需要累积时用抽象类,不需要累积时用接口。
3、何时选用抽象类而不是接口?
答:这是对之前抽象类和接口对比问题的后续。如果你知道语法差异,你可以很容易回答这个问题,因为它们可以令你做出抉择。当关心升级时,因为不可能在一个发布的接口中添加一个新方法,用抽象类会更好。类似地,如果你的接口中有很多方法,你对它们的实现感到很头疼,考虑提供一个抽象类作为默认实现。这是Java集合包中的模式,你可以使用提供默认实现List接口的AbstractList。
4、接口中定义方法的规则?
答:接口中是可以定义静态方法的,静态方法必须要有实现。且这个静态方法只能用public修饰或不写。例如:public static void test(){} 或 static void test(){}.//public省略不写默认也是用public来修饰。静态方法的方法名是可以任意的,即可以定义main方法,例如:public static void main (String[] args){}。
对于普通方法,修饰符为: public, abstract, default以及组合public 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、接口与类有哪些相似点?
答:(1)一个接口可以有多个方法;(2)接口文件保存在 .java结尾的文件中,文件名使用接口名;(3)接口的字节码文件保存在 .class结尾的文件中;(4)接口相应的字节码文件必须在与包名称相匹配的目录结构中。
7、接口与类的区别是什么?
答:接口不能用于实例化对象;接口没有构造方法;接口中所有的方法必须是抽象方法;接口不能包含成员变量,除了static和final变量;接口不是被类继承了,而是要被类实现;接口支持多继承。
8、标记接口用于哪里?
答:(1)建立一个公共的父接口:正如EventListener接口,这是由几十个其他接口扩展的Java API,你可以使用一个标记接口来建立一组接口的父接口。例如:当一个接口继承了EventListener接口,Java虚拟机(JVM)就知道该接口将要被用于一个事件的代理方案。
(2)向一个类添加数据类型:这种情况是标记接口最初的目的,实现标记接口的类不需要定义任何接口方法(因为标记接口根本就没有方法),但是该类通过多态性变成一个接口类型。
以上就是今天这篇文章对java接口面试题的整理,总共有8道题目,相应的附上了参考答案,希望大家可以认真学习,顺利通过面试。
HelloWorld10-31 08:24
军哥08-12 23:29
江湖人称小李白12-10 10:41
IT逐梦者08-17 21:43
HelloWorld11-06 11:19