gpt4 book ai didi

c# - 当私有(private)变量可以通过这种方式访问​​时,为什么我无法访问基类的私有(private)字段

转载 作者:行者123 更新时间:2023-12-01 18:43:45 27 4
gpt4 key购买 nike

我正在阅读下面链接中提到的问题
Why are private fields private to the type, not the instance?
Access to private members of class
Access private field of a instance object

public class MyClass : ClassA
{
private object myObj;

public object Field
{
get { return myObj; }
set { myObj = value; }
}

public MyClass()
{
}


public MyClass(MyClass class1)
{
class1.myObj = 5;
this.myObj = class1.myObj;
class1.myObjOfClassA; // Why I can not access myObjOfClassA when I can access myObj of class1 object
}
}


public class ClassA
{
private object myObjOfClassA;

}

我的问题是
1)如果我们可以像前面提到的那样访问类的私有(private)变量,那么为什么扩展另一个类的类不能访问基类的私有(private)变量?

2)我相信当代码或类被编译时,基类的所有方法、变量等将被添加到派生类中。我的说法正确吗?

最佳答案

If we can access the private variables of Class as mentioned then why a class which extends another class can not access private variables of base class?

因为变量没有在派生类的程序文本中声明,这就是 Java 和 C# 定义私有(private)访问的方式。 (Java 和 C# 之间有关嵌套类的详细信息有所不同;如果您想要一种语言或另一种语言的详细信息,请在您的问题中更加具体。)

I believe when code or classes will be compiled then all the methods, variables etc of base class will be added to derived class. Am I right on this?

他们没有添加到类(class)中,没有。它们由派生类继承,并且派生类的任何实例都将具有继承的所有字段 - 但这与它们声明的行为不同 em> 在派生类中。

关于c# - 当私有(private)变量可以通过这种方式访问​​时,为什么我无法访问基类的私有(private)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787075/

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