谈谈接口和抽象类有什么区别?

x33g5p2x  于2021-11-21 转载在 其他  
字(0.5k)|赞(0)|评价(0)|浏览(235)

如果面试问道
谈谈接口和抽象类有什么区别?

你会如何回答呢?

我的回答

接口和抽象类是 Java 面向对象设计的两个基础机制。
接口

  • 接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到 API 定义和实现分离的目的。
  • 接口,不能实例化;不能包含任何非常量成员,任何 field 都是隐含着 public static final 的意义;
  • 同时,没有非静态方法实现,也就是说要么是抽象方法,要么是静态方法。
  • Java 标准类库中,定义了非常多的接口,比如 java.util.List。
  • 允许多重继承

抽象类

  • 抽象类是不能实例化的类,用 abstract 关键字修饰 class,其目的主要是代码重用。
  • 除了不能实例化,形式上和一般的 Java 类并没有太大区别,可以有一个或者多个抽象方法,也可以没有抽象方法。
  • 抽象类大多用于抽取相关 Java 类的共用方法实现或者是共同成员变量,然后通过继承的方式达到代码复用的目的。
  • Java 标准库中,比如 collection 框架,很多通用部分就被抽取成为抽象类,例如 java.util.AbstractList。
  • 不允许多重继承

Java 类实现 interface 使用 implements 关键词,继承 abstract class 则是使用 extends 关键词&

相关文章

微信公众号

最新文章

更多