Fruit扩展了HealthyFood,后者扩展了Food,但Fruit和HealthyFoods都不能访问私有字符串名



指令:

在本练习中,您将创建一个带有HealthyFood子类的Food超类。HealthyFood还将有一个水果子类。创建这些类之后,在FoodTester类中测试结果。

Food类将有两个实例变量,一个存储名称,另一个存储卡路里。

食物也应该有两种存取器(吸气剂方法):

public String getName()
public int getCal()

HealthyFood类将只有一个实例变量group,它表示食物组,并且应该具有以下访问器(getter方法):

public String getGroup()

Fruit类将有两个实例变量,一个是布尔指示符(如果水果是局部的),另一个是颜色。访问器方法应为:

public boolean isLocal()
public String getColor()

施工人员应遵循以下格式:

public Food (String foodName, int calories)
public HealthyFood(String foodName, int calories, String foodGroup)
public Fruit(String foodName, int calories, boolean isLocal, String foodColor)

最后,Food类应该有一个toString,用于打印:name有卡路里

例如:

Ice Cream has 200 calories

实际代码:

FoodTester.Java

public class FoodTester {
public static void main(String[] args) {

}
}

Fruit.java

public class Fruit extends HealthyFood {
private boolean local;
private String color;

public Fruit(String foodName, int calories, boolean isLocal, String foodColor){
super(name, calories, "Strings");
local = isLocal;
color = foodColor;
}

public boolean isLocal(){
return local;
}

public String getColor(){
return color;
}
}

HealthyFood.java

public class HealthyFood extends Food {
private String group;

public HealthyFood(String foodName, int calories, String foodGroup){
super(name, cal);
group = foodGroup;
}

public String getGroup(){
return group;
}
}

Food.java

public class Food {
private String name;
private int cal;

public Food(String foodName, int calories){
name = foodName;
cal = calories;
}

public String getName(){
return name;
}

public int getCal(){
return cal;
}

public String toString(){
return name + " has " + cal + " calories";
}
}

错误消息:

HealthyFood.java:6: error: name has private access in Food
super(name, cal);
^
HealthyFood.java:6: error: cal has private access in Food
super(name, cal);
^
Fruit.java:7: error: name has private access in Food
super(name, calories, "Strings");
^
3 errors

尝试这样修改:

public HealthyFood(String foodName, int calories, String foodGroup){
super(foodName, calories);

public Fruit(String foodName, int calories, boolean isLocal, String foodColor){
super(foodName, calories, "Strings");

您应该将foodName或calibles作为超级构造函数的参数。

最新更新