2017-03-14 57 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的人=新的;

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

Java是區分大小寫的。 'ArrayList'!='Arraylist'。您還想避免使用原始類型,但這是一個稍微單獨的問題。 –

回答

5

ArrayList初始化這樣的:

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

或者,如果您使用的是Java SE 7以下的版本:

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

注意<>(Diamond)和ArrayList。在上面你丟失了一些在創建對象添加<Person>

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

+0

啊..我很混亂。對不起。謝謝您的幫助! – Wout

0

您應該創建ArrayList的物體,像下面的代碼。

+0

謝謝。我很混亂。 :( – Wout

0

您的代碼:

ArrayList<Person> persons = new Arraylist(); 

ArrayList的人員=新的ArrayList (); 你這裏有

情況下錯誤嘗試

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

如果你仍然有誤差比可能是您的Java編譯器級別升級到1.5或更高

相關問題