Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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#_.net_Oop_Class - Fatal编程技术网

C#中的对象和类之间有什么区别?

C#中的对象和类之间有什么区别?,c#,.net,oop,class,C#,.net,Oop,Class,可能重复: 我有几个问题: 类的每个实例(抽象类除外)都是对象 抽象类不能实例化,因此它们不是对象 有谁能帮助我更好地理解上述与C#相关的概念吗 是的,类的每个实例都是一个对象 类(无论是否抽象)不是对象。它们是类型 对象是类的实例 类是对象的定义。在实例化之前,它实际上不会成为对象。由于抽象类无法实例化,因此无法创建该类型的对象。为了创建对象,需要定义一个子类 抽象类永远不能被实例化(因此永远不能成为对象)。如果创建从抽象基类继承的类,并对其进行实例化,则该类将具有抽象类的属性以及它自己的属

可能重复:

我有几个问题:

  • 类的每个实例(抽象类除外)都是对象
  • 抽象类不能实例化,因此它们不是对象
  • 有谁能帮助我更好地理解上述与C#相关的概念吗

  • 是的,类的每个实例都是一个对象

  • 类(无论是否抽象)不是对象。它们是类型

  • 对象是类的实例

  • 类是对象的定义。在实例化之前,它实际上不会成为对象。由于抽象类无法实例化,因此无法创建该类型的对象。为了创建对象,需要定义一个子类


  • 抽象类永远不能被实例化(因此永远不能成为对象)。如果创建从抽象基类继承的类,并对其进行实例化,则该类将具有抽象类的属性以及它自己的属性。创建抽象基类的目的是“强制”派生类来实现某些功能(类似于接口,但不完全相同)。

    有一个常见的类比,可以更清楚地说明类和对象概念之间的区别

    课堂就像食谱。物体是蛋糕。从一个食谱你可以做很多蛋糕。配方只能包含提示(抽象),并为您自己创建配方(实现类)留出空间,然后您可以从中构建蛋糕(对象)

    所以一个类不是一个对象,它是对该类对象的描述。抽象类包含用于实现从该抽象类派生的类的方法和其他信息。无法从抽象类创建/实例化对象(因为它的定义不完整)

    类的每个实例(抽象类除外)都是对象

    对。这就是“实例”的定义

    抽象类不能实例化,因此它们不是对象


    类与实例或对象不同。对象是类的实例。想象一下动物园模拟。对象像一只特定的狮子,而类更像是狮子是什么的描述。抽象类是对事物的描述,太模糊了,无法单独基于该描述构建某个事物(例如“动物”)。这就是为什么不能实例化它们。类似动物的东西可能太模糊,程序无法直接请求;相反,程序只会请求更具体的东西,如狮子、老虎或猫鼬。

    1。是(给定#2)是的。一个曲线球是静态类,它在流程的生命周期中基本上是一个单一对象。这有助于将抽象类视为等同于接口。它们只是可以提供默认实现的接口。相关:和相关后-即使可以实例化抽象类,它们也不会是对象cts。应该注意的是,在某些语言中,类也是对象。@marco fiset Well这与C#特别相关,所以不确定其他语言在这里有什么关系。也就是说,接口不能有任何实现的方法,但只是一个接口。这意味着类的对象和实例是相同的吗?
    class Cat {} // It is a cat. Just a cat. Class is a general issue.
    
    myCat = new Cat("red", "5kg", "likes milk", "3 years old"); // It is my cat. It is an object. It is really a cat. 
    
    yourCat = new Cat("gary", "3kg", "likes a meal", "5 years old"); // It is your cat. Another cat. Not my cat. It is really a cat too. It is an object;
    
    abstract class Animal {} // Abstract class
    animal = new Animal(); // It is not correct. What is 'animal'? Cat, dog, cow? I don't know.
    
    class Dog : Animal {} // It is a class. It is a dog in general. 
    someDog = new Dog("brown", "10 kg", "likes cats"); // It is really a dog. It is an object.