Java面试题——抽象类和接口的区别

上篇博客我们讲解了抽象类和接口的主要的一些特性(博客链接如下:CSDN),在Java的面试中,经常有这样一个重要的面试题就是,讲述一下抽象类和接口的区别!!!

 核心区别:

抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用 ( 不必重写 ), 而接口中不能包含普通方法, 子类必须重写所有的抽象方法

对于抽象类A来说,可以在内部定义普通成员变量和普通成员方法,抽象方法只是抽象类的必要条件 

对于接口A来说,只能定义抽象方法,普通成员变量和普通成员方法都不能定义,抽象方法是接口的充要条件 

其他区别

1.结构组成

抽象类:包括普通类和抽象方法(抽象方法可以没有)

接口:包括抽象方法和全局变量(抽象方法必须有,子类需要继承且重写,定义的成员变量默认为public static final)

2.权限

抽象类:各种权限限定修饰符(抽象方法时不能用private,static,final修饰)

接口:只能是public(因为需要对接口中的所有抽象方法重写)

3.子类的使用

抽象类:使用extends关键字继承抽象类

接口:使用implements关键字实现接口(接口不能单独使用,必须通过实现类来进行实现

4.关系

抽象类:一个抽象类可以实现若干个接口(当需要继承多个接口时,用逗号隔开)

接口:接口不能继承抽象类,但是接口可以实现对多个接口的继承(当需要继承多个接口时,用逗号隔开,且用类实现时,需要重写所有接口中的抽象方法

5.子类限制

抽象类:一个子类只能继承一个抽象类(类的继承不支持多继承)

接口:一个子类可以实现对多个接口的继承(使用时需要用逗号隔开)

表格总结如下:

区别抽象类接口
结构组成包括普通类和抽象方法包括抽象方法和全局变量
权限各种权限限定修饰符只能是public
子类的使用使用extends关键字继承抽象类使用implements关键字实现接口
关系一个抽象类可以实现若干个接口接口不能继承抽象类,但是接口可以实现对多个接口的继承
子类限制一个子类只能继承一个抽象类一个子类可以实现对多个接口的继承

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值