java抽象类和接口根本区别总结

java抽象类和接口区别
  • 构造方法

    • 抽象类:可以有构造方法
    • 接口 :没有构造方法
  • 属性

    • 抽象类:可以存在普通属性
    • 接口 :可以存在普通成员变量,只能存常量,给编译的属性都加上public static final
  • 方法

    • 抽象类:可以存在普通方法,静态方法,抽象方法,抽象类不一定有抽象方法,但有抽象方法一定是抽象类,子类如果不实现父类的抽象方法,那子类一定是抽象类

    • 接口 :jdk1.8,可以存在default、static方法,接口中普通方法永远被public abstract修饰

      • 什么是default方法?

        Java 8 发布以后,可以给接口添加新方法,但是,接口仍然可以和它的实现类保持兼容。这非常重要,因为你开发的类库可能正在被多个开发者广泛的使用着。而Java 8之前,在类库中发布了一个接口以后,如果在接口中添加一个新方法,那些实现了这个接口的应用使用新版本的接口就会有崩溃的危险。

        Java 8的default方法能做什么?不能做什么? - 知乎 (zhihu.com)

        如果一个方法在一个类继承的多个接口中都有声明,那么,任何一个default实现都不会被继承,你将会得到一个编译时错误。

  • 抽象类—单继承, 接口----多实现

  • 都有main方法,接口可以直接new创建,只不过要实现匿名内部类,但抽象类不可以直接new

接口(Interface)与抽象类(Abstract Class)的区别? - 简书 (jianshu.com)

纯手打不易,望点赞支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值