|
|
1
22
这是一个常见问题。想知道为什么这是非法的,想想会出什么问题。 假设您从Base派生了另一个派生类Frob。现在您将Frob的一个实例传递给Der.B。您是否可以从Der.B访问Frob.Foo?不,绝对不是。Frob.Foo受到保护;只能从Frob和Frob的子类访问它。Der不是Frob,也不是Frob的子类,因此它不能访问Frob的受保护成员。 如果不清楚,请参阅我的文章: http://blogs.msdn.com/ericlippert/archive/2005/11/09/491031.aspx |
|
|
2
4
在B中,您试图访问另一个类的受保护成员。您从该类继承的事实与此无关。在D中,您正在访问当前类的基类的受保护成员。在此上下文中,您可以从Der及其继承类型的受保护成员访问任何内容。 |
|
|
3
3
您可以通过在基类中声明静态方法来克服此限制:
|
|
|
4
2
简单地说,protected允许访问子类。 在:
您正试图访问您的Der实例无权访问的受保护成员。只有当它是当前Der实例(this)的基类时,它才能访问它。
工作正常,因为您要通过Der访问它的基类保护方法。 |
|
|
5
0
在您尝试的场景中,您将希望对int-Foo使用“internal”。 |
|
Fernando Chu · 一个变量有多个可能的类?[关闭] 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
Rishab Negi · 这个关键字在抽象类中是如何工作的 1 年前 |
|
|
dEmigOd · 类层次结构中的运算符重载解析 1 年前 |
|
|
TableTopRug · 如何从Kotlin中的密封类继承? 1 年前 |
|
|
hasdrubal · 抽象基类函数指针python 1 年前 |
|
|
Josh · 通过反思访问孩子的财产 1 年前 |