抽象类和接口
今天我们将讨论 C# 中最常见和广泛使用的概念之一。它们用于从小型项目到大型企业级项目。让我们开始吧……
抽象类
抽象类是一种特殊类型的类,不能被实例化。抽象类被设计为由实现或覆盖其方法的子类继承。换句话说,抽象类要么部分实现,要么根本不实现。您可以在抽象类中拥有功能——抽象类中的方法既可以是抽象的,也可以是具体的。抽象类可以有构造函数——这是抽象类和接口之间的一个主要区别。您可以利用抽象类来设计组件并指定必须由派生类实现的某种级别的通用功能。
抽象类的语法
[公共] 抽象类 Abstract_Class_Name
{
// 字段和属性
// 非抽象方法或已完成方法
// 抽象方法或不完整方法
}
界面
接口基本上是一个契约——它没有任何实现。接口只能包含方法声明;它不能包含方法定义。接口中也不能有任何成员数据。抽象类可能包含方法定义、字段和构造函数,而接口可能只有事件、方法和属性的声明。接口中声明的方法必须由实现该接口的类实现。请注意,一个类可以实现多个接口,但只能扩展一个类。实现接口的类应该实现它的所有成员。像抽象类一样,接口不能被实例化。
接口语法
[公共] 接口类 Interface_Class_Name
{
// 字段和属性
// 方法签名(声明)
}
抽象类和接口的区别
我应该使用抽象还是接口?
抽象类为您提供了具有某些具体方法和派生类应实现的其他一些方法的灵活性。相反,如果使用接口,则需要实现类中扩展接口的所有方法。如果您有未来扩展的计划,那么抽象类是一个不错的选择——即,如果未来的扩展可能在类层次结构中。如果您想在使用接口时为将来的扩展提供支持,则需要扩展接口并创建一个新接口。
另一方面,如果需要,很容易将新接口添加到层次结构中。然而,如果你的层次结构中已经有一个抽象类,你就不能再添加一个——也就是说,只有当没有抽象类可用时你才能添加一个抽象类。如果您想要关于某些行为或功能的合同,您应该使用接口。如果您需要为接口方法编写相同的代码,则不应使用接口。在这种情况下,您应该使用抽象类,定义一次方法,并根据需要重用它。请使用接口将应用程序的代码与其特定实现分离,或限制对特定类型成员的访问。
资源:
https://www.linkedin.com/pulse/abstract-interface-dharshan-kesavan/
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/37922/04011911
标签:实现,声明,扩展,接口,抽象类,方法 From: https://www.cnblogs.com/amboke/p/16707027.html