哪位大侠给我分析一下!,我就是想不通!
public class A
{
protected int x;
static void F(A a,B b)
{
a.x=1; //可以访问
b.x=1; //可以访问
}
}
public class B :A
{
static void F(A a,B b)
{
a.x=1; //错误!不可以访问
b.x=1; //可以访问
}
}
X是PROTECTED 访问权限的,为什么子类不能访问了,我是菜鸟,请帮帮我!
问题点数:100、回复次数:8Top
1 楼zhongwanli(㊣【为了老婆,二次重构____然后升★★】㊣)回复于 2005-04-22 14:24:49 得分 20
将 Protected 改为 Public
Protected 指的是 保护级别 在B 中访问 A 的这个属性 是不允许的!
详细参照 MSDNTop
2 楼jcchou(湘霸佬)回复于 2005-04-22 14:30:48 得分 10
yeah,同意2楼。Top
3 楼FinalLover(zero)回复于 2005-04-22 14:38:17 得分 20
保护级别成员变量当然不能被直接访问,主要是供子类访问.要被外界直接访问,方式就只有public了.Top
4 楼panda2fw2(我爱Monkey)回复于 2005-04-22 14:40:31 得分 10
同意楼上的。Top
5 楼htl(雄猫.TOMCAT)回复于 2005-04-22 14:43:46 得分 0
可是,我就是想不通,B不是A的子类吗?Top
6 楼weiljj()回复于 2005-04-22 14:44:21 得分 10
static void F(A a,B b)
{
a.x=1; //可以访问
b.x=1; //可以访问
}
在這里訪問a.x是屬于從外部訪問,當然不行了.Top
7 楼weiljj()回复于 2005-04-22 14:45:31 得分 20
X是PROTECTED 访问权限的,为什么子类不能访问了(子類能訪問是指在內部訪問,而不是從內部).Top
8 楼wjcking()回复于 2005-04-22 17:09:29 得分 10
将 Protected 改为 PublicTop




