面试题 抽象类与接口的区别

抽象类概念:如果一个类没有足够的信息来描述一个具体的对象,需要其它类来支持,这样的类称为抽象类。

接口概念:是一种比抽象类还抽象的“类”

相同点:

1、都不能直接实例化,必须通过子类或实现类来实例化

2、子类或实现类必须要重写父类所有抽象方法,否则要声明为抽象类

不同点:

1、(继承)接口支持多继承,抽象类支持单继承

2、(关键字)接口用interface关键字修饰,抽象类用abstract class关键字修饰

3、(成员变量)接口中只能是public static final修饰的公共的静态的常量;而抽象类可以是常量,也可以是变量

4、(成员方法)接口中必须是抽象方法(JDK 8之后加上了非抽象方法的默认实现和静态方法;JDK 9 接口加上了私有方法和私有静态方法);抽象类成员方法既可以是普通方法,也可以是抽象方法。

5、(构造方法)接口不能有构造方法;抽象类可以有构造方法,但必须在子类继承后调用,才会初始化父类

6、(main方法)只有抽象类有main方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值