如何将java类(从一个包)继承到另一个类(在另一个包中)

时间:2014-01-29 15:03:17

标签: java inheritance

Java n00b在这里。我最近一直在学习包,并认为它们在管理代码时非常有用。但是,我(经常)遇到一个问题,即无法将一个类从一个包继承到另一个包的类中。

以下是在A.java中创建的Package1代码: -

package Package1;
public class A
{
    private int a;

    protected void setA(int a)
    {
        this.a = a;
    }

    public int getA()
    {
        return a;
    }

    public String toString()
    {
        return String.format("a = "+a);
    }
}

正在继承的类A1.java位于Package2。其代码如下: -

package Package2;
import Package1.A;
public class A1 extends A      // I even tried `Package1.A` but didn't have any change
{
    private int a1;

    public void setA1(int a1)
    {
        this.a1 = a1;
    }

    public int getA1()
    {
        return a1;
    }

    public String toString()
    {
        return String.format("a1 = "+a1);
    }
}

我得到的错误是: -

A1.java:2: error: package Package1 does not exist
import Package1.A;
               ^
A1.java:3: error: cannot find symbol
public class A1 extends A
                        ^
  symbol: class A

OR

A1.java:2: error: package Package1 does not exist
import Package1.A;
               ^
A1.java:3: error: package Package1 does not exist
public class A1 extends Package1.A

我不明白如何解决这个问题。你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

你的-cp参数有问题:编译器找不到你的A类

在你理解了类路径的原始基础知识(以及一些内存设置)之后,你肯定应该使用java编辑器来启动,你将花费大量时间手动编译并理解不带给你的编译器任何技能。

稍后你可能会使用一些更复杂的编译工具(并且比你在进行“持续集成”时编译的要多得多):你可以开始关注Gradle和Maven(Gradle是新的做法,但很多公司仍然使用Maven,所以如果你认为你会找工作学习maven,如果你想要有效,请学习Gradle)

Eclipse是免费的Java编辑器,所以我推荐你:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1

p.s:包也应该有小写名称,避免在你的名字中使用数字

相关问题