抽象类与接口的区别

                                         总结一些接口与抽象类的区别

抽象类:
用abstract关键字修饰的类为抽象类,当类中包括抽象方法时这个类必为抽象 类。
抽象类顾名思义是不能被实例化的, 抽象类中的静态变量和静态方法都可以被访问,以类名.成员变量的方式和类名.静态方法名的方式访问,不以static修饰的变量和方法是不能被外部访问的。
抽象类一般来说都是会被继承的,子类强制重写父类的抽象方法,当我们的父类方法不确定具体内容时(父类的方法不能适用于所有有需要的子类时)就会写成抽象方法,让子类来根据自身的具体情况来实现该方法。

接口:
用 interface修饰的类为接口,接口当中只有方法的定义,没有方法的实现
接口中可以定义变量,在接口中定义的变量是静态的(static)和不可变得(final)这两个关键字可以加上也可以不加,不加的话接口会默认加上。定义的变量都可以通过类名.成员变量的方式被外部访问。

下边来谈谈他们的区别:
1.接口可以用abstract修饰但是没有意义,接口只能定义方法的声明不能有方法的实现。抽象类中除了抽象方法其他方法都能正常实现。
2.接口可以多继承(implements实现多个接口,有事候也称之为继承多个接口),抽象类只能继承一个
3.接口中变量都是static和final的,抽象类中的不一定是
4.抽象类关注的是事物的本质,接口关注的是事物的动作和操作

其实抛开其他可以看出来抽象类是优于接口的,但是Java是单继承多实现的,所以大多数情况都是用接口,除非极个别情况下会用抽象类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值