如何使用Java oop在扩展基本方法中返回子变量

时间:2013-12-10 14:23:33

标签: java oop inheritance

public class Buildings {
public int getLevel(){
    return level;
}
}
 public class MainBuilding extends Buildings{
public static final int cost = 200;
public static int  level = 1;
}
MainBuilding main = new MainBuilding();
main.getLevel();

我想要有几个不同的instants变量,如level和cost,但它们应该有相同的方法getLevel(),只返回级别。我无法找到如何使用java ...

3 个答案:

答案 0 :(得分:0)

要么level变量(可能应该是实例变量而不是静态变量)移动到Buildings make { {1}}抽象,以便每个子类必须单独实现它(无论是通过返回变量,还是只返回一个常量,或者其他什么 - 这是一个实现细节)。

答案 1 :(得分:0)

我相信他们的示例代码中存在一些错误。这些是

  1. 您尚未在Buildings类中定义级别变量。

  2. 静态方法只能使用静态变量。 (在MainBuilding变量级别是静态的。但构建方法是非静态的)

  3. 这里你可以简单地解决这两个问题,然后执行getlevel()函数就可以了。

答案 2 :(得分:-1)

public class Buildings {
    private int level;

    public int getLevel(){
        return level;
    }

    public int setLevel(l){
        level = l;
    }
}

public class MainBuilding extends Buildings{
    public static final int cost = 200;

    public MainBuilding() {
        setLevel(1);
    }
}