如何在继承的类中返回String?

时间:2016-11-18 22:41:03

标签: java inheritance

所以我创建了一个名为“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;
    }
}

我目前还不确定如何写出Meat构造函数来指定名称。感谢任何帮助。谢谢。

4 个答案:

答案 0 :(得分:2)

您需要从子构造函数调用超级构造函数:

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

阅读tutorial about super

答案 1 :(得分:0)

除非您覆盖方法或添加字段或方法,否则我看不到拥有Meat类的附加值。你可以把你的肉定义为食物:

Food meat = new Food("Meat");

但是如果你扩展了Food类,你的Meat类必须调用Food的一个构造函数。最简单的方法是使用具有相同签名的构造函数:

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

请注意,每个Java类都有一个构造函数。如果没有显式定义,则编译器会插入一个具有公共可见性且没有参数的构造函数。

答案 2 :(得分:0)

您无需对function hexStringToBuffer(hexString) { var bytes = []; for (var i = 0; i < hexString.length; i += 2) bytes.push(parseInt(hexString.substr(i, 2), 16)); return new Buffer(bytes); } 执行任何其他操作。

在Meat类中,您可以像这样创建构造函数:

getName()

但是如果你想覆盖它,那么你可以这样做:

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

答案 3 :(得分:0)

如果我理解正确,你希望你所有的肉食对象都有&#34;肉&#34;作为名字。你应该这样做:

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