java 的抽象(abstract)和接口(interface)的区别

abstract抽象:

抽象类:可以包含抽象方法的类

目的:当某个功能想让不同的子类有不同的实现方法的时候就使用抽象类。

特点:

  • 不能是final修饰,因为抽象类需要被继承
  • 子类继承必须重写抽象类中的所有抽象方法。如果子类不想重写或者只想重写部分,那么子类必须是抽象方法。
  • 抽象类不能直接naw对象。如果需要new,需要在new对象的时候使用匿名类来重写抽象类中的抽象方法。
  • 构造器不能为私有。子类实例化的时候会先调用父类的构造方法来实例化父类。

抽象方法:在抽象类或者接口中没有方法体的方法

特点:

  •  不能有static、final、private修饰。因为抽象方法必须被子类重写,而static方法、final方法、private方法都不会被子类继承。

字段:和普通方法一样

interface接口

含义 :特殊的抽象类。是一种规范、标准、约束。

特点:

  • 多继承。一个接口可以继承多个接口;一个类也可以实现多个接口。
  • 没有构造器。不能直接new对象,需要用匿名内部类。
  • 抽象字段默认为publlic static final;抽象方法默认为public abstract。
  • 接口中不能有普通方法。可以有default和static方法。
  • 可以有static方法。可以static方法中写具体实现。注意,使用了static,默认的public abstract修饰相当于没有。因为static和abstract是不可能共存的。

         abstract VS interface

参数abstractinterface
构造器
范围修饰符除了private都可以

只能为public

继承单继承,和普通方法一样多继承,可以继承多个接口;一个类也可以实现多个接口。
内置方法什么方法都可以有。只能有默认修饰public abstact方法和static方法。

记住:abstract关键字和static、final、private不可能在方法中一起出现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值