抽象类和接口的区别

1 抽象类

概念:使用abstract修饰的类就是抽象类。如果一个类没有足够的信息能具象的描述事物,我们就可以说是抽象的。

特点:
抽象类无法直接实例化
抽象类中不一定有抽象方法
有抽象方法的类一定是抽象类
由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用

2 接口

概念:接口是抽象类中的抽象类,只能拥有抽象方法,接口中成员属性都是public static final 的
特点:
1)接口不能被实例化,只能被实现,才能实例化。
2)接口只能包含方法的声明

3.抽象类和接口的区别:

抽象类中可以包含静态方法,接口中不能包含静态方法
一个类可以实现多个接口,但只能继承一个抽象类
接口可以被多重实现,抽象类只能被单一继承

接口带来的最大好处就是避免了多继承带来的复杂性和低效性,并且同时可以提供多重继承的好处。接口和抽象类都可以提现多态性,但是抽象类对事物进行抽象,更多的是为了继承,为了扩展,为了实现代码的重用,子类和父类之间提现的是is-a关系,接口则更多的体现一种行为约束,一种规则,一旦实现了这个接口,就要给出这个接口中所以方法的具体实现,也就是实现类对于接口中所有的方法都是有意义的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值