C# 为什么派生类不能引用基类?
我知道C# 为什么派生类不能引用基类?,c#,oop,C#,Oop,我知道bb=newa()是不可能的,但它背后的解释是什么?这仅仅是因为继承的工作方式;一个女人或一个男人就是一个人,最终会给这个基本阶层的人增加一些别的东西,比如性别 如果您声明: class A { } class B : A { } 而不是一个没有性别的男人 另一种方法是有效的,因为每个人也是一个人;-) 通过从A派生,可以指定B的实例不仅是B,它们也是A。这是在OOP中调用的。继承的力量在于能够将一般属性/行为抽象为一个公共类,然后从中派生出专门的类。专用类可以更改现有功能(称为重写)
bb=newa()代码>是不可能的,但它背后的解释是什么?这仅仅是因为继承的工作方式;一个女人或一个男人就是一个人,最终会给这个基本阶层的人增加一些别的东西,比如性别
如果您声明:
class A
{
}
class B : A
{
}
而不是一个没有性别的男人
另一种方法是有效的,因为每个人也是一个人;-) 通过从A
派生,可以指定B
的实例不仅是B
,它们也是A
。这是在OOP中调用的。继承的力量在于能够将一般属性/行为抽象为一个公共类,然后从中派生出专门的类。专用类可以更改现有功能(称为重写)或添加新功能
然而,继承只在一个方向上起作用,而不是在两个方向上都起作用。类A
的对象不能被视为B
,因为B可能(而且通常是!)比A
包含更多的功能。或者,换句话说,B
更具体,而A
更一般
因此,您可以执行aaa=newb()代码>但不是B=新的A()代码>因为BA是一个基,你从A派生出B。
A就像是建筑的基础,基于基础你们可以建造新的楼层。但是使用地板你不能建立基础
Man m = new Person()