在java与c#间的疑问
在msdn的代理里面看到的例子:
// protected_keyword.cs
using System;
class A
{
protected int x = 123;
}
class B : A
{
static void Main()
{
A a = new A();
B b = new B();
// Error CS1540, because x can only be accessed by
// classes derived from A.
// a.x = 10;
// OK, because this class derives from A.
b.x = 10;
}
}
在该例中,a.x是不能访问的,为什么???这个代码我在java中写,a.x是可以访问的,有些疑惑,望兄弟们解答一下,谢谢!
------解决方案--------------------
protected
类、类属变量及方法,包内的任何类,及包外的那些继承了此类的子类才能访问 --java
仅当访问通过派生类类型发生时,基类的受保护成员在派生类中才是可访问的 --C#