2016-05-31 8 views
1

ich Vererbung lerne und während so auf Eclipse zu machen, ich erhalte eine Fehlermeldung beim Versuch, das folgende Programm auszuführen:java inheritence auf 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); 
    } 
} 

Der Fehler, den ich ist „Fehler: Kann nicht finden oder laden Hauptklasse superex $ A "; Was verursacht diesen Fehler und wie behebe ich ihn?

+0

Was ist der Name, wenn diese Java-Datei? Beachten Sie auch, dass eine .java-Datei nur eine öffentliche Klasse haben darf, deren Name mit dem Namen der Datei übereinstimmen muss. –

+0

Java sucht nach Klassen basierend auf Dateinamen, nicht nach dem Inhalt der Dateien. Ich gehe davon aus, dass du diese Datei singinh1 genannt hast, aber keine singinh-Datei existiert, so dass die Klasse laoder sie nicht finden kann. – gbtimmon

Antwort

0

in Java starten können Sie nicht mehr als eine haben Öffentliche Klasse in derselben Quelldatei. Außerdem sollte der Name der Quelldatei genau der Name der öffentlichen Klasse in dieser Quelldatei sein.

Da Ihre Hauptmethode in der Klasse "singinh1" ist, behalten Sie sie als öffentliche Klasse bei und entfernen Sie das öffentliche Schlüsselwort aus der Klasse "singinh". Benennen Sie den Quelldateinamen auf singinh1.java.

Code geändert:

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); 
    } 
} 
1

Wie Sie mit java das Beste, was zu tun beginnen 2 Dateien singinh.java und singinh1.java, bewegen Sie den zugehörigen Code in die entsprechende Datei erstellen und starten Sie Ihre java Befehl singinh1 als Haupt-Klasse.

In singinh.java haben Sie:

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

In singinh1.java haben Sie:

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); 
    } 
} 

Dann werden Sie in der Lage sein singinh1