Java基础以及Java相关面试内容

Java基础与面试系列之一接口与抽象类的区别

2018-10-14  本文已影响0人  NetCedar

接口与抽象类的区别主要在变量和成员方法的区别
在JDK1.7版本中
接口
   1.成员变量
       只能是常量,默认修饰为:public static final

   2.成员方法
       都是抽象的,默认修饰 public abstract;没有构造方法

抽象类
   1.成员变量
       因为抽象类需要被继承,所有成员属性不能为private,即对成员属性可以用protected和public修饰,同时,成员变量即可以为变量,也可以为常量。

   2.成员方法
       可以有构造方法,方法修饰符不能为private,可以是抽象方法,也可以是非抽象方法 (可以有方法的具体实现)

在JDK1.8版本中
   对接口进行一些修改,在接口中可以定义静态方法(只能通过接口调用,不能通过实现类的类名和对象调用),也可以定义默认方法(有具体的实现,JDK1.7中接口不能有具体方法的实现),但是必须用default修饰来修饰该方法

在JDK1.8版本中当一个类同时实现两个接口,但是两个接口中定义了同样的方法,那么在这个类中必须重写这个方法,否则编译不会通过。

上一篇下一篇

猜你喜欢

热点阅读