2016-09-15 20 views
0
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

提示:重寫'examine()'。 – Mordechai

+0

在Defense的'examine()'中,在打印出Defense的屬性之後,調用'super.examine()'以便調用它的父實現,等等。 – kgdinesh

+0

不要忘了擴展Item類,否則超級調用Object作爲它的超類(我相信) –

回答

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一個簡單的,但可以理解的教程

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()會返回一個特殊的ized輸出 - 對此派生類唯一。

相關問題