using System;namespace Test
{
class A
{
protected int x;
public void FunA(A a, B b)
{
a.x = 10;
b.x = 12;
}
}
class B : A
{
public void FunB(A a, B b)
{
a.x = 15;
b.x = 16;
}
}
}
protected成员不是可以在基类和派生类中使用吗??
为什么派生类中a就不可以调用x呢?
如果说是a跳出了它所属类型进行访问,那b也跳出了它的所属类型B啊?
想了很久,希望各位能给我详细解释一下!!!
谢谢!!!
解决方案 »
- 如何将SQL SERVER数据库的表导入到excel中
- 请大虾们多多指教
- 检测到 PInvokeStackImbalance,懂的来
- c#,查询长字符串变量,换行遇到问题...实在没办法,查不到,求助一下看看,能解决不???
- TCP协议到底能实现P2P吗??
- 安装SQL2005时提示已经存在更高版本..怎么解决?
- (20分) 如何用C# winform编写C\S软件的数据库连接、访问等功能
- 怎样从.xml文件中读取相对应的记录?
- 如何用C#做一个简单的浏览器啊?????
- 如何用file field上传图片时,把图片写入数据库,又把图片读出
- Array.GetLowerBound 方法
- 求C#有关网络编程方面的资料
还有就是能被子类继承,
带颜色的代码有问题,他已经超出了基类的范围,估计会出错class B : A
{
public void FunB(A a, B b)
{
a.x = 15;
b.x = 16;
}
}
但这是通过A的实例来访问的,所以超出访问范围。如果你直接x=15或者base.x是可以访问的
{
x = 12;//这句是可以的,因为B是派生自A,所以可以访问A中的protected成员。
//下面两句不行,因为a.x你是访问A类实例化对象的x,x只能在A类中的代码进行访问,不能这样访问。
a.x = 15;
b.x = 16;
}
但是他被B类继承了啊。b.x操作的是继承的部分,protected成员:这个成员能在基类范围里运用。
还有就是能被子类继承,