2016-08-15 12 views
0

上記の問題を取り除いた:私は学生の情報を表示したい。親クラスのPersonを作成し、クラスStudentに継承しました。スレッド "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(); 
} 
} 

私は、2種類のオブジェクトの生徒と教師を作成する必要があります。私はメソッドsetNameを継承して入力しますが、子クラスのgetNameをオーバーライドしてそれぞれの名前を表示します。

+1

を修正しましたか? – aleb2000

+0

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

+1

この問題は再現できません。私のコンピュータでは、コードはコンパイルされません。静的でない内部クラスに 'public static void main()'を置くことはできません。 –

答えて

0

あなたの過ちは:

  • あなたはそれがあなたのlistPeopleは最初は空であることを意味ListStudent型の新しいインスタンスを作成します
  • 、このJava

  • でファイル内の複数のパブリッククラスを定義することはできません。

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

//リトルは、あなたが完全な例外メッセージを提供することができます

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(); 
    } 
} 
関連する問題