接口与抽象类的异同之处

        在技术面试中,经常会问一个问题,接口和抽象类区别和相似之处。这里总结一下,希望对读者有帮助。


        先说它们的相似之处:
        1.接口的方法全部没有实现部分,只有方法签名;而抽象类可以定义抽象方法,这些抽象方法也没有实现部分,只有方法签名。

        2.接口和抽象类都不能直接用来建立对象实例,必须由一个普通类继承或实现它,实现那些抽象方法,然后以此普通类去创建对象实例。


        再说一下它们的差异:
        1.接口没有构造函数;但抽象类由构造函数。
        2.接口不允许其内任何方法有实现部分;但抽象类允许定义非抽象方法,这类方法必须有实现部分。
        3.接口没有内置的super和this变量;抽象类则有。
        4.接口的成员变量一定是常数(final的变量);但抽象类的成员变量没有这个规定,与普通类的标准一致。

        5.接口的所有成员的封装等级都是public,所以定义时不能加public之外的其它封装修饰符;但抽象类的成员可以是任何封装等级。


        当然以上所说的内容,是基于传统的、JDK7.0之前的版本,JDK8.0对语法进行了较大调整,不在本文讨论之列。哎,技术进步太快了!是不是年纪大了,跟不上时代变化了!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值