面试题思考:Java中接口(interface)和抽象(abstract)类的区别

本文详细阐述了Java中抽象类与接口的区别,包括接口的更抽象性、多实现与单一继承、变量与方法的权限差异、以及它们在继承和实现中的规则。同时,讨论了抽象类在不提供接口方法实现时也能实现接口的情况,以及有抽象方法的类必须声明为抽象类的规则。此外,还提到了接口的多重继承特性,以及抽象类和接口在实际编程中的应用场景。
摘要由CSDN通过智能技术生成

1

接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法

2 **

类可以实现很多个接口,但是只能继承一个抽象类
一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现否则该类仍然需要被声明为抽象类

3

抽象类可以在不提供接口方法实现的情况下实现接口。

4

Java 接口中声明的变量默认都是final的。抽象类可以包含非final的变量。

5

Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private,protected 或者是 public

6

接口是绝对抽象的,不可以被实例化抽象也不可以被实例化但是,如果它包含main方法的话是可以被调用的。(抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用)

7 **

接口可以继承接口抽象类可以实现(implements)接口抽象类可继承具体类,但前提是具体类必须有明确的构造函数

8 **

有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法

9 ***

接口可以继承接口,而且支持多重继承抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值