2016-11-18 51 views
0

所以我創建了一個名爲「Food」的超類,它接受一個名爲「name」的String作爲參數,我現在想要創建一個名爲「Meat」的繼承類,併爲該類繼承它所繼承的「Meat」的名稱食物類。這是我當前的嘗試:如何在繼承類中返回一個字符串?

public class Meat extends Food 
{  
    public Meat(String name) { 
     String meat = name; 
    } 


    public String getName() { 
     return name; 
    } 
} 

這裏是食品類:

public class Food { 

    //field that stores the name of the food 
    public String name; 

    //constructor that takes the name of the food as an argument 
    public Food(String name){ 
     this.name = name; 
    } 

    public String getName() { 
     return name; 
    } 
} 

我目前不知道如何寫出來的肉構造函數指定的名稱。任何幫助表示讚賞,謝謝。

回答

0

除非您重寫方法或添加字段或方法,否則我沒有看到具有Meat類的附加值。你可以只定義你的肉類食物:

Food meat = new Food("Meat"); 

但是,如果你擴展了食品類,你的肉類必須調用食品的一個構造。最簡單的方法是使用一個具有相同簽名的構造函數:

public Meat(String food){ 
    super(food); 
} 

請注意,每個Java類都有一個構造函數。如果你沒有明確定義一個,編譯器會插入一個具有公開可見性且不帶參數的構造函數。

2

你需要從孩子的構造函數調用父類的構造函數:

public class Meat extends Food {  
    public Meat(String name) { 
     super(name); 
    } 
} 

閱讀tutorial about super

0

您不需要對getName()做任何事情。

肉類,你可以創建這樣的構造:

public Meat(String name) { 
    super(name); 
} 

但是,如果你想覆蓋它,那麼你可以做這樣的事情:

@Override 
public String getName() { 
    String name = "Meat" + this.name; 
    return name; 
} 
0

如果我理解正確的話,你希望所有肉類對象都有「肉」作爲名稱。你應該這樣做:

public class Meat extends Food { 
    public Meat() { 
     super("Meat"); 
    } 
} 
+0

我怎麼會在main方法中調用它,以便它打印出這個String? – Lee