eclipse上的java继承

时间:2016-05-31 17:10:01

标签: java eclipse inheritance

我正在学习继承,在Eclipse上这样做时,我在尝试运行以下程序时遇到错误:

import java.io.*;
import java.util.*;
public class singinh
{
    void sub(int a, int b)
    {
        int c = a-b;
        System.out.println("Diff is"+c);
    }
}
public class singinh1 extends singinh {
    int a,b;
    void add(int a, int b)
    {
        this.a=a;
        this.b=b;
        System.out.println("Sum is"+a+b);
    }
    public static void main(String args[])
    {
        singinh1 s = new singinh1();
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        s. add(a,b);
        s.sub(a,b);
    }
}

我得到的错误是"错误:无法找到或加载主类superex $ A&#34 ;;导致此错误的原因是什么,我该如何解决?

2 个答案:

答案 0 :(得分:1)

当您从java开始时,最好的办法是创建2个文件singinh.javasinginh1.java,将相关代码移到相应的文件中并启动java使用singinh1作为主类的命令。

singinh.java中你将拥有:

public class singinh
{
    void sub(int a, int b)
    {
        int c = a-b;
        System.out.println("Diff is"+c);
    }
}

singinh1.java中你将拥有:

import java.io.*;
import java.util.*;
public class singinh1 extends singinh {
    int a,b;
    void add(int a, int b)
    {
        this.a=a;
        this.b=b;
        System.out.println("Sum is"+a+b);
    }
    public static void main(String args[])
    {
        singinh1 s = new singinh1();
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        s. add(a,b);
        s.sub(a,b);
    }
}

然后您就可以启动singinh1

答案 1 :(得分:0)

在java中,同一源文件中不能有多个公共类。此外,源文件的名称应该是该源文件中公共类的名称。

由于您的main方法位于“singinh1”类中,因此请将其保留为公共类,并从“singinh”类中删除public关键字。将源文件名命名为 singinh1.java。

修改后的代码:

import java.io.*;
import java.util.*;

class singinh
{
    void sub(int a, int b)
    {
        int c = a-b;
        System.out.println("Diff is"+c);
    }
}

public class singinh1 extends singinh {
    int a,b;
    void add(int a, int b)
    {
        this.a=a;
        this.b=b;
        System.out.println("Sum is"+a+b);
    }
    public static void main(String args[])
    {
        singinh1 s = new singinh1();
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        s. add(a,b);
        s.sub(a,b);
    }
}