gpt4 book ai didi

c# - 继承基类引用C#

转载 作者:太空狗 更新时间:2023-10-29 23:54:08 24 4
gpt4 key购买 nike

class Base
{
//...
public int i = 5;
}

class Drifted : Base
{
//...
public int b = 10;
}

Base ObjectOrReference = new Drifted();

所以 Base ObjectOrReference; 是对基类型的引用。当我们编写 Base ObjectOrReference = new Drifted(); 时,它变成了对象,因为通过使用“new”我们为它分配了内存?或者它仍然引用,如果它是真的,它有什么类型?直接的问题是:“ObjectOrReference 是对象吗?”

最佳答案

它仍然是一个引用,一个指向堆上对象的指针。它是 Drifted 类型。

即使您的引用是 Base 类型,底层对象是 Drifted 并且派生类 Drifted 中的任何重写成员都将是使用而不是 Base 上的那些,即使您尝试使用 Base

在使用 new 语法隐藏成员的情况下,如果您有对基类型的引用,它将绕过任何隐藏成员的派生类。

可以通过谷歌搜索“C# 引用类型”在线找到概述。我浏览了一下,看起来值得一读:

http://www.albahari.com/valuevsreftypes.aspx

关于c# - 继承基类引用C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com