Java类、抽象类、接口的异同

Java是面向对象的编程语言,类是对象的结构框架,类中定义了对象的成员变量和方法,此外还可以有类本身的静态变量和方法。
类可以被继承,每一次继承中,子类只能有一个直接的父类,但是可以有多层继承的关系。


抽象类

抽象类是一种特殊的类,抽象类不能用来创建对象,但抽象类可以有构造函数,抽象类需要被继承,可以使用其非抽象子类来创建对象。
若一个类中含有抽象方法,则该类必须声明为抽象类;反之,若一个类声明为抽象类,该类不一定有抽象方法,声明这种抽象类的目的在于使其不能用来创建对象。
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。


接口

接口并不是类,接口中的方法只能是抽象方法,接口不能用来创建对象,接口可以被接口多继承,但最终需要被类实现,实现需要使用关键字implements。

  • 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
  • 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
  • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

总结

抽象类 接口
创建对象 不能 不能
构造函数 没有
成员变量 没有
成员方法 没有
类变量 只能用public static final修饰
类方法 没有
继承 单继承 单继承 多继承
实现 - - 一个类可实现多个接口

参考资料
Java基础 接口和抽象类
Java 抽象类
Java 接口

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

推荐阅读更多精彩内容

  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,137评论 0 62
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 1,225评论 0 5
  • java继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继...
    863cda997e42阅读 686评论 0 1
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,829评论 0 10
  • 也许想让自己不那么丧,那就别做空想派,做个勤劳的行动者,不要总是去想,嗯,今天还没准备好,明天,明天开始好...
    非菲Fairy阅读 226评论 0 0