2017-03-14 6 views
0

私は最近プログラミングを始めました。私は相続、多型、オーバーライドに忙しかったです。今私はちょうどこのプログラムを作ったし、何らかの理由でうまくいきません。 コンパイラは "=新しいArrayListを()強調;しかしこのプログラムがなぜ機能しないのか分かりません。多形性

コードは以下の通りである理由私にはわからない:

スーパークラスは:人

public class Person { 
private String firstName; 
private String lastName; 

public Person(String firstName, String lastName) { 
    this.firstName = firstName; 
    this.lastName = lastName; 
} 

public void print() { 
    System.out.println("\t" + firstName + " " + lastName); 
} 
} 

サブクラス:教師

public class Teacher extends Person { 
public Teacher(String firstName, String lastName) { 
    super(firstName, lastName); 
} 

public void print() { 
    System.out.println("Professor Details: "); 
    super.print(); 
} 

} 

サブクラス学生:

public class Student extends Person { 
private int graduationYear; 
private double gpa; 

public Student(String firstName, String lastName, int graduationYear, double gpa) { 
    super(firstName, lastName); 
    this.graduationYear = graduationYear; 
    this.gpa = gpa; 
} 

public void print() { 
    System.out.println("Student Details: "); 
    super.print(); 
    System.out.println("\t" + graduationYear); 
    System.out.println("\t" + gpa); 
} 
} 

メインクラス:(私がarraylistを初期化する場合、何らかの理由で動作しません。 (脂肪は、コンパイラでエラーです:ArrayListの人物は=新しいArrayListを();

public class Main { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 

    ArrayList<Person> persons = new Arraylist(); 
    persons.add(new Student("Sam", "Young", 2017, 3.6)); 
    persons.add(new Student("Dan", "Sella", 2012, 2.5)); 
    persons.add(new Student("Kevin", "Cane", 2016, 2.7)); 

    for(Person person : persons) { 
     person.print(); 
    } 
} 

} 

すべてのヘルプは高く評価され

+4

にアップグレードすることができるよりも、エラーを持っている場合 あなたがここに

をケースのエラーを持っているが

ArrayList<Person> persons = new ArrayList<Person>(); 

を試してみてください。 'ArrayList'!=' Arraylist'です。また、生の型の使用を避けたいのですが、これはやや別の問題です。 –

答えて

5

ArrayListを次のように初期化されます。

ArrayList<Person> persons = new ArrayList<>(); 

または、。 Java SE 7以下のバージョンを使用している場合:

ArrayList<Person> persons = new ArrayList<Person>(); 

<>(Diamond)とArrayListに注目してください。

+0

ああ...私はとても面倒です。ごめんなさい。助けてくれてありがとう! – Wout

0

あなたはコードの下のようなArrayListオブジェクトを作成する必要があります。

ArrayList<Person> persons = new ArrayList<Person>(); 

を使用すると、オブジェクトの作成に<Person>を追加するために欠けているの上に。

+0

ありがとうございます。私は非常に乱雑です。 :( – Wout

0

あなたのコード:

ArrayList<Person> persons = new Arraylist(); 

ArrayListの者=新しいArrayListを();あなたはまだJavaコンパイラレベルはJavaは大文字と小文字が区別される1.5以上

関連する問題