「Android」理解抽象类和接口的区别

abstract class

[public] abstract class ClassName {
}

interface

[public] interface InterfaceName {
}

对比

  1. 抽象类是对一种事物的抽象,即对类抽象。而接口是对行为的抽象
  2. 抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范

如何理解

我个人认为:

  • 抽象类解决的是【是什么】( is - a) 的问题,是对事物的抽象
  • 接口解决的是【有什么功能】( has - a) 的问题,是对行为的抽象

例如说,当我们需要实现一个飞机和一只老鹰的时候,那么我们可以设计一个飞行物的抽象类,同时对于飞行物而言我们需要实现飞行这个动作,那么我们可以设计一个飞行的接口。


山庄的铁匠
15 声望11 粉丝