如何创建一个方法来打印每个字段的状态以进行继承?

时间:2016-09-15 19:34:47

标签: java inheritance

public class Item {
    String name;
    int weight;
    String examine;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setWeight(int weight){
        this.weight = weight;
    }

    public int getWeight() {
        return weight;
    }

    public void examine(){
        System.out.println("item: " + getName() + "\n" + "weight: " + getWeight() + "\n");
    }

所以,这些是我的代码。 examine()方法将打印出名称和权重变量。但是,如果另一个类继承自此类,如果继承该方法,如何使该方法也打印出其他属性。 例如,如果我创建一个具有“防御”字段的防御类,并且防御类继承自Item类,那么如何使examine()打印出“防御”字段的属性。

2 个答案:

答案 0 :(得分:1)

在你的防御类中,你将有一个名为examine()的方法,它将覆盖超类方法。如果你想要它也打印超类检查试试这个。

//In a separate class
public class Defense extends Item{
    //Defense methods

    public void examine(){
        super.examine(); //This will call the super method examine(), which you declared in the Item class.
        //Print whatever you want from the defense class
}
}
  

编辑1:

有关继承的更多信息,请参阅https://www.tutorialspoint.com/java/java_inheritance.htm以获得简单易懂的教程

答案 1 :(得分:0)

你可以这样继承:

public class GoodItem extends Item {

    int defense;

    public int getDefense() {
        return defense;
    }

    public void setDefense(int defense) {
        this.defense = defense;
    }
    public void examine(){
        System.out.println("item: " + getName() + "\n" + "weight: " + getWeight() + "\n" + getDefense());
    }
}

在GoodItem对象上调用examine()将返回一个专门的输出 - 这个派生类是唯一的。