您的位置:首页 > 编程语言 > Java开发

Java中抽象类与接口10问10答

2016-03-07 16:13 465 查看
原文地址:http://javarevisited.blogspot.com/2013/04/10-abstract-class-and-interface-interview-question-java-answers.html

1. Java中抽象类能否有构造函数?

抽象类中可以定义自己得构造函数,可以用于初始化抽象类中成员变量;

2. 抽象类可否实现实现已有的接口?

抽象类依然可以用implements方式来实现接口,但不用实现接口中所有的方法;

3. 抽象类是否可以申明成final类型?
抽象类不能申明为final类型。抽象类主要是为其他类继承而产生的,若定义为final

类型,将不能被其他类继承,违背了初衷,‘

4. 抽象类是否可以包含static申明的方法?
抽象类中可以定义声明static类型的方法,抽象类中抽象方法一般是用于子类实现,

对于抽象类中static类型的方法,将不会被子类重写。

5. 能否创建抽象类的实例?
不能,抽象类不能创建属于自己的实例,即使抽象类中没有包含任何抽象方法,也

不能创建该抽象类的实例,换句话说,只要是abstract声明的类,都不能创建实例。

编译器对于abstract类型的类会认为:1.该类包含未实现的方法,2.该类不可被实例化;

6. 在定义抽象类的时候是否一定要定义一些抽象方法出来?
不,抽象类可包含抽象方法,也可以不包含。对于不包含抽象方法的抽象类,编译器

还是会给该类加一些抽象类应该具备的特性。

但是换句话说,既然类中所有方法都有具体实现,为什么还要声明该类为abstract类

型呢?所以为了不失抽象类的本性,定义抽象类的时候还是要包含抽象方法。

7. 抽象类与接口之间的异同点?

该问题联想到面向对象的概念(OOPS):抽象,

8. 在什么情况下,你更倾向于使用抽象类来代替接口?
当我们需要对基类扩充一些新方法时,抽象类比接口更有优势;另外,当一个已经定

义的接口中有大量未实现的方法时,你如果继承该接口,就需要实现接口所有方法,

这显得很没必要。

9. Java中抽象方法具体含义?

抽象方法就是没有方法体的方法,并且用abstract关键字声明它;

10. 抽象方法能否包含main方法?

当然可以,并且可以同过main方法来执行该抽象方法,只是不能创建该抽象方法的实例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: