Java 如何同时使用导入和继承?

Java 如何同时使用导入和继承?,java,netbeans,Java,Netbeans,我已经开始学习Java,并尝试在netbeans IDE中使用导入和继承 在netbeans中,我创建了一个项目和两个文件夹“food”和“food1” 食物中有Fruit.java,food1中有Apple.java 这是工作正常的代码 Fruit.java package food; public abstract class Fruit{ } Apple.java package food1; import food.Fruit; class Apple extends Fruit{ }

我已经开始学习Java,并尝试在netbeans IDE中使用导入和继承

在netbeans中,我创建了一个项目和两个文件夹“food”和“food1”

食物中有Fruit.java,food1中有Apple.java

这是工作正常的代码

Fruit.java

package food;
public abstract class Fruit{
}
Apple.java

package food1;
import food.Fruit;
class Apple extends Fruit{
}
问题: 1.如果我没有申报包装(包装食品和包装食品1),它就不起作用。但我已经手动将它们放入文件夹中。
2.如果我要删除import语句,它将不起作用。但该类水果已被宣布为公开的。

您的问题描述是正确的-这意味着,它按预期工作:

  • 如果我没有申报包裹(
    package food
    package food1
    ),它就不起作用了
  • 是的,目录结构必须与包名称一致。如果您的目录结构看起来像

    src
     +--food
     |    +--Fruit.java
     +--food1
          +--Apple.java
    
    然后,
    Fruit.java
    需要有
    package food
    语句,
    Apple.java
    需要有
    package food1
    语句

  • 如果我要删除import语句,它将不起作用。但是班级水果已经公开了
  • 是的,如果要使用来自不同包的类,则必须导入该类(或者使用包含包名的完全限定类名,例如…
    扩展了food.Fruit
    ——但通常的方法是导入)。声明类
    public
    是不够的-它只定义类可以从包外部使用,但您仍然需要导入它

    另见


    精彩的故事。你的问题到底是什么?你的问题描述是正确的-这意味着,它按预期工作。目录结构必须与包名一致,如果要使用不同包中的类,则必须将其导入(或使用包含包名的完全限定类名,如
    …extends food.Fruit
    -通常的方法是导入)。我已经说明了我在做一些更改时面临的两个问题。@Manu你的“问题”都不是真正的问题,只是你还不了解Java是如何工作的。所以你需要阅读更多关于基础知识的教程和书籍,比如@JatinLalwani我不是在取笑你。你根本没有问清楚问题。这就是我一直在寻找的答案。。谢谢你,先生。