2016-08-15 5 views
0

fand das obige Problem: Ich möchte Informationen des Schülers anzeigen. Ich habe Parent-Klasse People erstellt und geerbt, um Student.Ausnahme im Thread "main" java.lang. NoSuchMethodException

public class ListPeople { 
protected String name; 

List<ListPeople> listPeople = new ArrayList<ListPeople>(); 

public void setName() { 

    Scanner input = new Scanner(System.in); 
    for (int i = 1; i < 2; i++) { 

     ListPeople people = new ListPeople(); //object of parent class 

     System.out.print("Enter your Name: "); 
     people.name = input.nextLine(); 

     listPeople.add(people); 
    } 
} 

public class ListStudent extends ListPeople { 
public void getName() { 
    for (ListPeople people : listPeople) { 
     System.out.print("Name of Student:"); 
     System.out.print(people.name); 

    } 
    } 
} 
    public class ListMain { 
public static void main(String[] args) { 
    ListPeople people = new ListStudent(); 
    people.setName(); 

    ListStudent student = new ListStudent(); 
    student.getName(); 
} 
} 

Ich muss zwei Arten von Objekten Schüler und Lehrer erstellen. Ich erben Methode SetName zu Eingabe aber überschreiben getName in untergeordneten Klassen, um entsprechende Namen anzuzeigen.

+1

Können Sie die vollständige Ausnahmemeldung zur Verfügung stellen? – aleb2000

+0

List.ListStudent.main ([Ljava.lang.String;) \t bei java.lang.Class.getMethod (Class.java:1622) – SK1987

+1

Ich kann das Problem nicht reproduzieren. Auf meinem Computer kompiliert sich Ihr Code nicht. Sie können nicht 'public static void main()' in einer nicht statischen inneren Klasse haben. –

Antwort

0

Ihre Fehler:

  • Sie können nicht mehr als eine öffentliche Klasse in einer Datei in
  • Java definieren
  • Dies wird die neue Instanz von ListStudent Typ es bedeutet, dass Ihr listPeople ist zunächst leer erstellen.

    ListStudent Schüler = new ListStudent();
    student.getName();

// Kleine modifizierte

import java.util.*; 

class ListPeople { 
    protected String name; 

    protected List<ListPeople> listPeople = new ArrayList<ListPeople>(); 

    public void setName() { 

     Scanner input = new Scanner(System.in); 
     for (int i = 1; i < 2; i++) { 

      ListPeople people = new ListPeople(); //object of parent class 

      System.out.print("Enter your Name: "); 
      people.name = input.nextLine(); 

      listPeople.add(people); 
     } 

    } 

    public void getName(){ 

    } 

} 

class ListStudent extends ListPeople { 
    public void getName() { 
     for (ListPeople people : listPeople) { 
     System.out.print("Name of Student:"); 
     System.out.println(people.name); 

     } 
    } 
} 


public class ListMain { 
    public static void main(String[] args) { 
     ListPeople people = new ListStudent(); 
     people.setName(); 
     people.getName(); 
    } 
} 
Verwandte Themen