抽象类 | 接口 | |
---|---|---|
不同点 | 用 abstract 定义 | 用 interface 定义 |
只能继承一个类 | 可以实现多个接口 | |
非抽象派生类必须实现抽象方法 | 实现接口的类必须实现所有的成员 | |
需要用 override 实现抽象方法 | 直接实现 | |
相似点 | 都不能直接实例化 | |
都包含未实现的方法 | ||
子类或“接口实现类”必须实现未实现的方法 | ||
抽象类 | 接口 | |
---|---|---|
不同点 | 用 abstract 定义 | 用 interface 定义 |
只能继承一个类 | 可以实现多个接口 | |
非抽象派生类必须实现抽象方法 | 实现接口的类必须实现所有的成员 | |
需要用 override 实现抽象方法 | 直接实现 | |
相似点 | 都不能直接实例化 | |
都包含未实现的方法 | ||
子类或“接口实现类”必须实现未实现的方法 | ||