【发布时间】:2012-11-27 00:11:34
【问题描述】:
我有这个简单的代码:
public class A
{
int _private=3;
public A (B b)
{
b._private=5;
}
}
public class B:A
{
}
这段代码编译
通过
OOP-b不应该提供对_private的访问。通过私人和
A,A知道_private,但仍然通过b进行访问!
这是怎么回事?
【问题讨论】:
-
嗯,
B是A的 type,A可以访问自己的变量...您所做的是真正的代码味道(使用继承类型的基类)。 -
@Oded:我不太会称之为代码异味——这是描述层次结构的常用模式,例如
Node类有两个子类Parent和Leaf,其中每个Node使用Parent作为对其父节点的引用。 -
@O.R.Mapper - 少数例外之一。
-
@Oded:好的,同意。那是一种常见的模式,但我真的想不出任何其他主要模式会包含这样的东西。
标签: c# .net oop access-modifiers