2017-11-08 15 views
-4

現在、私はHumane32という作業クラスを持っています。クラスFysikere42をこのクラスで拡張したいのですが、人間には2つの引数、年齢と名前、Fysikere42に1つあります。 Humane32クラスは、現在、このように探しています:1つのクラスを別のクラスに拡張しようとしています

import java.util.List; 
import java.util.Arrays; 
import java.util.Random; 
import java.util.ArrayList; 

public class Humane32{ 
    public static class Human{ 
     private static final List<String> names = Arrays.asList("Rutger","Oscar","Aram","Noak","Hilda","Dahl"); 
     public Random rand=new Random(); 
     public String name; 
     public int age; 

     public Human(int age, String name){ 
      this.age=age; 
      this.name=name; 

     } 
     public Human(){ 
      this.age=rand.nextInt(101); 
      this.name=names.get(rand.nextInt(names.size())); 
     } 

     public String getName(){ 
      return this.name; 
     } 
     public int getAge(){ 
      return this.age; 
     } 
     public String toString(){ 
      return "åldern är:"+this.age+"\n"+"namnet är:"+this.name; 
     } 

    } 
    public static void main(String[] args){ 
     ArrayList<Human> humaner=new ArrayList<Human>(); 
     int q; 
     for (q=0;q<=15;q++){ 
      humaner.add(new Human()); 
      System.out.println(humaner.get(q).toString()); 
     } 

    } 
} 

そして、私の新しいクラスは、現在、このように探しています:

import java.util.List; 
import java.util.Arrays; 
import java.util.Random; 
import java.util.ArrayList; 

public class Fysikere42 extends Humane32{ 
    public static class Fysikerere42{ 
     public int year; 

     public Fysikere42(int age, String name,int year){ 
      this.age=age; 
      this.name=name; 
      this.year=year; 

     } 
     public int getYear(){ 
      return this.year; 
     } 
    } 
    public static void main(String[] args){ 
     System.out.println("hej"); 
    } 
} 

しかし、私は必要なエラーメッセージ、「無効なメソッドの宣言、戻り値の型を取得しています"どこが間違っていたのですか?

+0

あなたは、コードのどの行でそれを得ていますか?あなたは 'Fysikerere42'と' Fysikere42'の両方を持っています。あなたは前者の中に後者のコンストラクタを持っています。あなたがここまで来たことを明確にしてください。 – EJP

+0

ネストされたクラス 'Fysikerere42'は' public Fysikerere42'ではなく 'public Fysikere42'でコンストラクタを宣言しようとしています。 – khelwood

+0

public fysikere42(int age ....) –

答えて

1

名は、それがFysikerere42のコンストラクタとして、それを読んでいないので、それは、このメソッドの戻り値の型を求めて一致していないので、あなたは、静的な内部クラスFysikerere42内部Fysikere42のコンストラクタを定義しています。 (コンストラクタメソッドは戻り値の型を持たないので、コンストラクタではないと思います)。

変更Fysikerere42へのコンストラクタの名前:

public class Fysikere42 extends Humane32{ 
    public static class Fysikerere42{ 
     public int year; 

     public Fysikerere42(int age, String name,int year){ 
      this.age=age; 
      this.name=name; 
      this.year=year; 

     } 
+0

愚かな間違いで申し訳ありませんが、実際には動作していません。/ –

+1

@A.Maineそれでは別の質問を投稿してください。私はあなたがこの1つを削除することをお勧めします、それは無駄です。 – EJP

+0

人々が答えてくれたので、私はそれを削除することができません、私は、愚かなタイプミスを遅らせることができて申し訳ありませんが... –

関連する問題