Java面试题:抽象类和接口有什么区别

2020年12月17日11:47:17 评论 84

试题题面:接口是否可以继承接口?抽象类是否可实现接口?抽象类是否可继承实体类?

题面解析:本题属于在笔试中高频出现的问题之一,主要考查关于接口和抽象类的知识点,在解答本题之前需要了解什么是接口、什么是抽象类、什么是抽象方法,同时还需要把接口和抽象类区分开来,以防混淆。下面我们一起来看看Java面试题抽象类和接口有什么区别吧。

Java面试题:抽象类和接口有什么区别

解析过程:

一、接口

接口属于一种约束形式,只包括成员定义,不包含成员实现的内容。

二、抽象类

抽象类主要是针对看上去不同但是本质上相同的具体概念的抽象。抽象类不能用来实例化对象,声明抽象类的唯一目的是将来对该类进行扩充。一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

三、抽象方法

。抽象方法是指一些只有方法声明而没有具体方法体的方法。抽象方法一般存在于抽象或接口中。抽象方法不能被声明成final和static;任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类;如果一个类包含若干个抽象方法,那么该类必须声明为抽象类,但抽象类可以不包含抽象方法;抽象方法的声明以分号结尾。

(1)接口可以继承(extends)接口。通过关键字extends声明一个接口是另一个接口的子接口。由于接口中的方法和常量都是public,子接口将继承父接口中的全部方法和常量。例如:

public interface InterfaceA
{
 }
interface InterfaceB extends InterfaceA
 {
 }

(2)抽象类可以实现(implements)接口。当一个类声明实现一个接口而没有实现接口中所有的方法,那么这个必须是抽象类,即abstract类。例如:

public interface InterfaceA
{
 }
abstract class TestA implements InterfaceA
 {
 }

(3)抽象类可继承(extends)实体类,但前提是实体类必须有明确的构造函数。例如:

public class TestA
{}
abstract class TestB extends TestA
{}
Java大学
  • 本文由 发表于 2020年12月17日11:47:17
  • 转载请务必保留本文链接:https://www.javadx.com/113.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: