日期:2014-05-20  浏览次数:20631 次

在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#