接口与抽象(abstract and interface)

接口和抽象

接口(interface)就是一种特殊的abstract class,但是比abstract class更加抽象。

定义接口有利于代码的规范。(接口分离原则)

abstract class 表示的是is a关系,interface表示的是like a关系。
抽象类强调的是从属关系,接口强调的是功能。

interface就是Java多继承曲线救国的方式,作为继承关系的补充。

类型 abstract class Interface
定义 abstract关键字 Interface关键字
继承 抽象类可以继承一个类和实现多个接口,
子类只可以继承一个抽象类
接口可以继承接口(一个或多个),子类可以实现多个接口
访问修饰符 public/protectd/default 默认Public,不可以使用其他修饰符
方法实现 可定义构造方法,可以有抽象方法和具体方法 接口是完全抽象的。且方法都是抽象的,不存在方法的实现
实现方式 子类使用extend关键字来继承抽象类,
如果子类不是抽象类的话,它需要提供抽象类的所有声明的方法的实现
子类使用implement来实现接口,它需要提供接口中所有声明方法的实现
作用 把想用的东西提取出来,即重用 把程序模块进行固化的契约,为了降低耦合度

抽象

abstract class animal (){} // abstract define 

// dog is a kind of animal
class dog extends animal 

// cat is a kind of animal
class cat extends animal 

继承和实现


A implement Action  // A can do Action

A extends B         // A is a B 
posted @ 2021-08-23 23:34  jenontheroad  阅读(65)  评论(0)    收藏  举报