哪一个是C#中的有效对象?
我有一个基类base和一个派生自基类的类Derived1,还有一个派生自Derived1的派生类Derived2 下面我提到了几个创建对象的案例(接下来是类的多级继承)。有人能帮助我理解在哪些情况下不可能创建对象,以及为什么在C#中不可能创建对象吗哪一个是C#中的有效对象?,c#,C#,我有一个基类base和一个派生自基类的类Derived1,还有一个派生自Derived1的派生类Derived2 下面我提到了几个创建对象的案例(接下来是类的多级继承)。有人能帮助我理解在哪些情况下不可能创建对象,以及为什么在C#中不可能创建对象吗 那很容易。引用(已声明的变量,因此位于左侧)的派生类型必须较少。右侧的实例可能更具派生性 派生类拥有关于基类的所有信息,因为继承是一种“is-a”关系 我们有一个基类“base”和一个派生类“derived” 根据继承规则“派生的是一个基”。Base
那很容易。引用(已声明的变量,因此位于左侧)的派生类型必须较少。右侧的实例可能更具派生性 派生类拥有关于基类的所有信息,因为继承是一种“is-a”关系 我们有一个基类“base”和一个派生类“derived” 根据继承规则“派生的是一个基”。Base的所有属性都存在于派生的 基b=新的派生()//这是可能的,因为所有有关基地的信息
d=新基础()//这是不可能的,因为base没有关于派生的信息。这里有一个非常简单的方法:
public class A { }
public class B : A { }
public class C : B { }
因此,这就像颠倒定义一样简单:
A < B < C
C#不支持任何其他组合(因为)。这称为.Base b=new-Derived();//在dervied类的内存中,我们可以容纳base.Derived d=newbase();//这是不可能的,因为在base的内存中,如果创建了上述类结构,我们无法容纳derived。在这种情况下,将调用哪个类构造函数,为什么?(你能解释一下所有有效和无效的案例吗?)通常我会说,只要问这个问题。然而,由于这个问题是6年前提出的,我将把这个链接放在这里;及;
A < B < C
A z = new A();
A y = new B();
A x = new C();
B w = new B();
B v = new C();
C u = new C();