子类引用指向父类对象???

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:03:19
MS有个名为Disabled Button Cell的例子:
其中有:
public class DataGridViewDisableButtonCell : DataGridViewButtonCell
{
// Override the Clone method so that the Enabled property is copied.
public override object Clone()
{
DataGridViewDisableButtonCell cell = (DataGridViewDisableButtonCell)base.Clone();

cell.Enabled = this.Enabled;
return cell;
}
}

//这个例子运行正常. 其中 DataGridViewDisableButtonCell cell = (DataGridViewDisableButtonCell)base.Clone();是不是子类引用指向父类对象???

如果说可以强制转换,以下模仿的试验却报错:
Class A
{
public A Clone()
{
return new A();
}
}
Class B : A
{}

A a = new A();
B b = (B)a.Clone();出现不能强制转换的错误!

谁能解释一下谢啦!
base.Clone()返回的确实是Object类型,但Object类型岂不是更高的父类?

把试验改成Object类型也报错,而且错误提示中VS自动把这个Object识别成A类型

完整的代码: java:一个父类的引用指向一个子类的对象 c++父类方法中能否定义子类对象? 子类可以访问父类的protected对象? 高分求助java问题!—引用变量指向子类的实例 为什么String的两个引用同指向一个对象时,这两个引用不相等! java 子类和父类 java中如何将父类子类对象强制转换 为父类对象,这么做有什么意义?在实际工程中怎么应用??? java中子类对象和超类对象是否和互用 ·(20分,不说假话,高手进,基础好的进)指向const对象的const指针引用是什么, java 子类覆盖父类方法问题