vij*_*jay 2 java subclass access-specifier
为什么一个包中的子类不能通过超类的引用访问它的超类(在另一个包中)的受保护成员?我正在努力解决这一问题.请帮我
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
}
Run Code Online (Sandbox Code Playgroud)
受保护的成员可以由类,包中的其他类以及其子类隐式访问.即,子类可以x从其自己的父级访问.
您能够访问的this.x事实证明可以访问x超类.如果x在超类中是私有的,this.x则会出错.
当您说p.x您正在尝试访问其他实例时x,而不是在其自己的层次结构中.包装外不允许这样做.
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |