java 抽象类和接口的区别



 语法层面上:

       1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;

  2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

  3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

  4)一个类只能继承一个抽象类,而一个类却可以实现多个接口。

补充:抽象类中可以不提供abstart方法,同样该类也不能够实例化

设计层面上:

       抽象是继承是“是不是”的关系,接口实现是“有没有”的关系,不如说有个抽象类Door(门),一个门类的继承子类WoodDoor(木门),这个就是抽象类的继承。比如有个Bird(鸟)类,有一个(Airplane)飞机类,它们都有一个方法fly()方法,这里就没有办法用抽象类来解决这个问题了,要用接口,因为显然鸟和飞机不是子类和父类的关系,它们只是有共同的行为方法,它们都有fly方法,这个是“有没有”的概念。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值