【发布时间】:2010-10-20 20:03:09
【问题描述】:
以下是我的项目代码的一部分:
public class Body extends Point{
public double x, y, mass;
public Body() {
x = y = mass = 0;
}
public Body(double x, double y, double mass) {
this.mass = mass;
this.x = x;
this.y = y;
}
}
public class Point {
public double x;
public double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
}
我很快意识到这样做会在 Body 类中创建 两个 变量,称为 x,并在 Body 中创建另外两个变量,称为 y。这怎么可能,为什么 Java 甚至允许它?
我认为这是 Body 类的正确代码:
public class Body extends Point{
public double mass;
public Body() {
super();
mass = 0;
}
public Body(double x, double y, double mass) {
super(x,y);
this.mass = mass;
}
}
感谢您的宝贵时间
【问题讨论】:
-
所以如果我有一个带有 Point 参数的方法,并且我发送了一个 Body 类的实例,我将能够从该实例的 Point 访问 x 和 y 变量?如果输入参数的类型是 Body 而不是 Point,我将只能从 Body 访问 x 和 y 变量?
标签: java class variables scope extends