abstract class和interface有什么不同?

Java-面试王 Java面经 发布时间:2021-08-29 20:52:40 阅读数:17120 1 abstract
下文笔者将讲述abstract class和interface的区别,如下所示:
abstract class 同 interface不同点:
   abstract class:抽象类,它不能创建实例对象
      abstract class中可以定义抽象方法,也可以定义普通方法
      子类中需实现父类(abstract Class)中所有抽象方法,如无法实现,则必须将子类中的方法定义为abstract类型

interface(接口):抽象类的特别实现,接口中所有方法都是抽象的,除(java8中的default方法和static方法)
      接口中的成员必须为 public static final修饰符  

abstract class及interface语法上不同之处

  1. 抽象类可以有构造方法但是接口中不能有构造方法
  2. 抽象类中可以有普通成员变量,接口中没有普通成员变量
  3. 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法(只能包含一个default 和 static方法)
  4. 抽象类中的抽象方法的访问类型可以是public,protected及默认类型
    接口中的抽象方法只能是public类型的(默认修饰符public abstract)
  5. 抽象类中可以包含静态方法,接口中不能包含静态方法
  6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,
    但接口中定义的变量只能是public static final类型(默认为public static final类型)
  7. 一个类可以实现多个接口,但只能继承一个抽象类
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202108/1630242220910.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者