您的位置:首页 > 其它

接口与抽象类的异同之处

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

        先说它们的相似之处:

        1.接口的方法全部没有实现部分,只有方法签名;而抽象类可以定义抽象方法,这些抽象方法也没有实现部分,只有方法签名。
        2.接口和抽象类都不能直接用来建立对象实例,必须由一个普通类继承或实现它,实现那些抽象方法,然后以此普通类去创建对象实例。

        再说一下它们的差异:

        1.接口没有构造函数;但抽象类由构造函数。

        2.接口不允许其内任何方法有实现部分;但抽象类允许定义非抽象方法,这类方法必须有实现部分。

        3.接口没有内置的super和this变量;抽象类则有。

        4.接口的成员变量一定是常数(final的变量);但抽象类的成员变量没有这个规定,与普通类的标准一致。
        5.接口的所有成员的封装等级都是public,所以定义时不能加public之外的其它封装修饰符;但抽象类的成员可以是任何封装等级。

        当然以上所说的内容,是基于传统的、JDK7.0之前的版本,JDK8.0对语法进行了较大调整,不在本文讨论之列。哎,技术进步太快了!是不是年纪大了,跟不上时代变化了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: