gpt4 book ai didi

java - 当导入已经在父类(super class)中时,为什么我必须在子类中使用导入?

转载 作者:行者123 更新时间:2023-12-01 07:23:11 25 4
gpt4 key购买 nike

我有两个问题。

我有一个 Apple 类,它扩展了一个抽象 Fruit 类,请参阅下面的代码 ↓

第一个问题:为什么我必须使用import java.awt.Color; 在我的苹果类中,因为它已经在我的水果类中了?我收到错误:找不到符号

第二个问题:在我的苹果构造函数中,我有 String result = season ? "yes": "no"; (我想要 boolean 值打印"is"或“否”)是的,在 Fruit boolean 方法中还是在 public static void main 中更好?如果是的话我该怎么做?

Apple.java

import food.Fruit;
import java.awt.Color;

class Apple extends Fruit {

public static void main(String args[]) {
Fruit apple = new Apple(Color.RED, true);
apple.prepare();
System.out.println("Color: " + apple.getColor());
}

public Apple(Color color, boolean seasonal) {
super(color, seasonal);
String result = seasonal ? "yes" : "no";
System.out.println("Seasonal: " + result);
}

@Override
public void prepare() {
System.out.println("Cut the Apple");
}
}

水果.java

package food;

import java.awt.Color;

public abstract class Fruit {
private Color color;
private boolean seasonal;

public Fruit(Color color, boolean seasonal) {
this.color = color;
this.seasonal = seasonal;
}

public abstract void prepare();

public Color getColor() {
return color;
}

public boolean isSeasonal() {
return seasonal;
}
}

最佳答案

第一个问题:导入不会被继承。只是因为您扩展了一个类,所以导入某些内容并不会导入该类的导入。长话短说:您需要在 .java 文件中导入所需的所有内容。

第二个问题:只要可能且明智,请将代码从子类移至父类。这减少了代码重复。

关于java - 当导入已经在父类(super class)中时,为什么我必须在子类中使用导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30651059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com