保护访问类型

可能重复:
在Java中,public,default,protected和private有什么区别?

为什么一个包中的子类不能通过超类的引用访问其超类的保护成员(在另一个包中)? 我正在为这一点而努力。 请帮帮我

package points;
public class Point {
  protected int x, y;
}

package threePoint;
import points.Point;
public class Point3d extends Point {
  protected int z;
  public void delta(Point p) {

    p.x += this.x;          // compile-time error: cannot access p.x
    p.y += this.y;          // compile-time error: cannot access p.y

  }

受保护的成员可以被类,包中的其他类以及其子类隐式访问。 即,子类可以从其父母访问x

您可以访问this.x事实证明,超类中的x是可访问的。 如果x在超类中是私有的,则this.x会给出错误。

当你说px你试图访问一些其他实例的x ,而不是在它自己的层次结构中。 这是不允许的。


因为您引用了不同Point实例的成员。 这是不允许的。

您可以像使用this.x那样访问继承的成员。

链接地址: http://www.djcxy.com/p/24069.html

上一篇: protected access type

下一篇: Omitting public modifier in java methods