interface与abstract类的区别

以下内容整理自互联网,仅用于个人学习


继承

abstract使用的是extends关键字,表示一种继承关系,所以只能单继承。
interface使用的是implements关键字,一个类可以实现多个interface。

成员变量

在抽象类中可以有自己的数据成员,也可以有非abstarct的方法。
而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的方法都是public abstract的。

抽象方法

实现抽象类和接口的类必须实现其中的所有抽象方法。抽象类中可以有非抽象方法,而接口中所有方法为抽象方法。

访问权限

抽象类中的变量默认是friendly型,其值可以在子类中重新定义,也可以重新赋值。
接口中定义的变量默认是public static final型,且必须给其赋初值,所以实现类中不能重新定义,也不能改变其值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,718评论 0 11
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,229评论 0 5
  • 抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。 一个类如果继承了某个抽象类或者实现了某个接口都需要...
    峰峰小阅读 290评论 0 1
  • 抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。 一个类如果继承了某个抽象类或者实现了某个接口都需要...
    野狗子嗷嗷嗷阅读 370评论 0 0