Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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#_Oop_Overriding - Fatal编程技术网

C# 创建继承类的实例时出错

C# 创建继承类的实例时出错,c#,oop,overriding,C#,Oop,Overriding,我有以下两门课 public class A { public virtual decimal Sum(int x, int y) { return x+y; } } public class B : A { public override decimal Sum(int x, int y) { return x+y+1; } } 我在main类中编写以下代码 A m

我有以下两门课

 public class A
 {
     public virtual decimal Sum(int x, int y)
     {
          return x+y;
     }
  }

 public class B : A
 {
      public override decimal Sum(int x, int y)
      {
           return x+y+1;
      }
 }
我在main类中编写以下代码

  A myobj1;
  B myobj2;

  myobj1 = new B();
  myobj2 = new A();
为什么第二个对象给我的错误是
不能隐式地将类型'ClassLibrary3.A'转换为'ClassLibrary3.B'。存在显式转换(是否缺少转换?
但是
B类
继承
a类

但是,类B继承类A

这意味着所有的
B
s都是
A
s.

这并不意味着所有的
A
s都是
B
s。

为了清晰起见,让我们用更有意义的名称来重新编写这篇文章:(这个方法与这个问题并不相关,我省略了它,)



人是动物。动物不是人。

您已将此标记为Java问题。这与Java有什么关系?是的,但是A从B继承吗?毕竟,您正在尝试将A分配给B。这是
OOP
中的一个通用问题,因此这两种语言都与它相关+1。。。另外,在示例中,我会使用更传统的
Cat
而不是
Person
。。。并不是每个人都是动物,有些人更善良:)。
public class Animal
{
}

public class Person : Animal
{
}
Animal animal;
Person person;

animal = new Person();
person = new Animal();