定义
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式,就如面向对象程序设计提供的多重抽象化。
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
相同
接口和抽象类都源自结构体Structure,两者都包含抽象方法,都不能生成实例。
不同
- 抽象类是对象的抽象,接口是一种行为规范。如男人是人,男人吃饭。这里的男人是子类,人是抽象类,吃饭是接口。
- 类只能继承一个抽象类,可以实现多个接口。
- 抽象类可以包含非抽象方法、可以有构造器,接口不行。
- 抽象类的成员变量可以被不同的修饰符来修饰,而接口默认的是静态常量static final。这个特点是由第二点引申过来的。同样的,接口的方法默认是static abstract。