Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么抽象类和接口不能实例化?_C# - Fatal编程技术网

C# 为什么抽象类和接口不能实例化?

C# 为什么抽象类和接口不能实例化?,c#,C#,为什么我们不能创建抽象类和接口的实例?意味着,抽象类和接口不能实例化,只能由类实现。我喜欢: 抽象类是一种特殊的类,不能 实例化。所以问题是为什么我们需要一个不能 实例化?抽象类只能是子类(继承的) 从)。换句话说,它只允许其他类从中继承 但是不能被实例化。优点是它强制执行某些 所有子类的层次结构。简单地说,这是一种 强制所有子类执行相同操作的契约 等级或标准 接口不是类。它是由 文字界面。接口没有实现;它只有 签名,或者换句话说,就是方法的定义 没有身体。作为抽象类的一个相似之处,它是 用于为

为什么我们不能创建抽象类和接口的实例?意味着,抽象类和接口不能实例化,只能由类实现。

我喜欢:

抽象类是一种特殊的类,不能 实例化。所以问题是为什么我们需要一个不能 实例化?抽象类只能是子类(继承的) 从)。换句话说,它只允许其他类从中继承 但是不能被实例化。优点是它强制执行某些 所有子类的层次结构。简单地说,这是一种 强制所有子类执行相同操作的契约 等级或标准

接口不是类。它是由 文字界面。接口没有实现;它只有 签名,或者换句话说,就是方法的定义 没有身体。作为抽象类的一个相似之处,它是 用于为所有子类或其子类定义层次结构的协定 定义一组特定的方法及其参数


在正常情况下,这是因为创建类的实例需要为该实例留出一块内存。抽象类或接口并不包含创建其实例所需的所有信息。它只包含描述类所需的信息


尝试创建抽象类或接口的实例就像花钱买一盒砖块,但里面什么都没有。你只有外面,里面什么也没有。

你可以。它们被称为具体类。为什么需要实例化它们?@Muctadir可能会生成一个
C++
-ish错误“纯虚拟函数调用…”@Neel tm kese idher jaani?定义和答案是正确的,但不幸的是并不总是有帮助的,因为如果出现此错误,他不知道“属于”哪些类当然,除非是他自己写的。例如,如果EF core对您来说是新的,并且您想要获取DbContextOptions的实例,那么您不能,因为它是一个抽象类。现在如何找到相关的“具体”类?