启动一个类和继承一个类有什么区别

Niv*_*nth -4 c# inheritance

我有三个类A,B和C如下所示

public class A
{
    public void add(int i, int k)
    {
    }
}
public class B:A
{
    public void AddInt()
    {
        add(1, 2);
    }

}
public class C
{
    public void AddInt()
    {
        A objA = new A();
       objA.add(1, 2);
    }     

}
Run Code Online (Sandbox Code Playgroud)

我们想要访问"A"类方法添加,有两种方法

1)启动"A"类,然后访问Add方法

2)继承"A"类,然后访问Add方法

如果这两种方式都提供相同的功能,那么为什么C#提供了两种实现相同功能的方法.

Eri*_*ert 45

启动类和继承类有什么区别?

首先,您要查找的单词是实例化的,而不是启动.

实例化一个类和继承一个类有什么区别?

继承表示两个类之间的"是一种"关系:

  • 纽约时报是一种报纸.
  • 长颈鹿是一种动物.
  • 苹果是一种水果.

在每种情况下,第一种类型是"更多派生"类型 - 它更具体 - 而第二种类型是"较少派生"类型或"基础"类型.它更通用.水果比苹果更多.

在C#中,当您在两个类之间建立继承关系时,您会得到两件事:

  • 赋值兼容性:您可以使用更多派生类型的表达式,其中需要基类型的表达式.
  • 成员继承:基类的所有方法,事件,索引器,运算符,字段,属性和嵌套类型都是派生类的自动成员.(构造函数和析构函数不可继承).

实例化是创建类型的新实例的过程.

  • 在这里,让我给你一份今天的纽约时报.
  • 在这里,让我给你一只长颈鹿.
  • 在这里,我来给你一个苹果.

所以在C#:

class Fruit {}
class Apple : Fruit { } // Apple inherits from Fruit
class Program {
  static void Main() {
    Apple apple = new Apple(); // Instantiating a new Apple
  }
}
Run Code Online (Sandbox Code Playgroud)

合理?

  • 谢谢长颈鹿,我会珍惜它. (19认同)

Tig*_*ran 7

它根本不是关于C#基本OOP概念的C#,在这种情况下,它只是表现为面向对象强类型语言.

"初始化"是给定类型的实例的创建:A在您的情况下.

第二个例子是一个多态,你从一个给定的类型A派生,并创建派生类型B,能够访问A该类的公共/受保护成员.

这种情况下访问行为是相同的,但它的起源是完全不同的.


Tal*_*ner 5

你在比较人类和食物……对,没有比较

启动会花费您系统的一些 RAM。

继承可让您启用公共代码的可重用性

  • “你正在将人类与食物进行比较......没有比较”`公共类食人者扩展了人类{......` (5认同)