我正在学习继承,在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 ;;导致此错误的原因是什么,我该如何解决?
答案 0 :(得分:1)
当您从java
开始时,最好的办法是创建2个文件singinh.java
和singinh1.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);
}
}