网站首页 > 精选文章 / 正文
结论:
1、接口是一个契约,是一个共识,它不关心继承者是什么,它只在乎继承者是否实现了它所声明的一切
2、抽象类希望在多个相关对象之间实现相同的行为,它希望继承者来自同一族群,告知继承者你们应该像我声明的那样一致行动
使用场景:
考虑使用接口,如果:
1、希望不相关的类实现你的接口.
2、希望指定特定的行为,但不关心由谁实现它的行为
3、想要利用多重继承的优势
考虑使用抽象类如果:
1、希望在几个密切相关的类之间共享代码
2、希望扩展抽象类的类具有许多公共的方法或字段,或者需要公共以外的访问修饰符
概念:
接口定义了契约。实现该契约的任何类或结构都必须提供接口中定义的成员的实现。
关键字 abstract 使你能够创建不完整的类和类成员,这些类和类成员必须在派生类中实现。
栗子:
/// <summary>
/// 定义接口
/// </summary>
interface IInterface
{
void ContractMethod();
}
/// <summary>
/// 继承自抽象类与接口
/// 继承BaseClass似乎在说:我ImplementationClass与BaseClass是一种类
/// 继承IInterface似乎在说:我遵循了IInterface声明的协议
/// </summary>
public class ImplementationClass : BaseClass,IInterface
{
/// <summary>
/// 实现接口
/// </summary>
public void ContractMethod()
{
throw new NotImplementedException();
}
/// <summary>
/// 实现抽象类
/// </summary>
public override void MustImplementMethod()
{
throw new NotImplementedException();
}
}
Tags:abstract class
猜你喜欢
- 2024-12-25 1.行为模式-责任链模式 责任链模式实例
- 2024-12-25 深度解析设计模式七大原则之——开闭原则
- 2024-12-25 31 道设计模式面试题,助你在技术面试中取得成功!
- 2024-12-25 一文学会设计模式,太详细了 文学设计是什么
- 2024-12-25 阿里面试:什么是责任链模式? 责任链模式uml图
- 2024-12-25 5.行为模式-中介者模式 中介的形象
- 2024-12-25 一篇文章搞懂C#的五大设计原则 c#设计模式原则
- 2024-12-25 业务数据治理体系化思考与实践 业务数据管理制度
- 2024-12-25 接口和抽象类的区别 接口和抽象类的区别和联系
- 2024-12-25 C# abstract和virtual关键字的区别