2017-03-14 5 views
0

Ich habe vor kurzem angefangen zu programmieren und ich bin beschäftigt mit Vererbung, Polymorphismus und Überschreiben. Jetzt habe ich gerade dieses Programm gemacht und aus irgendeinem Grund funktioniert es nicht. . Der Compiler unterstreicht "= new Arraylist(); aber ich weiß nicht, warumIch verstehe nicht, warum dieses Programm nicht funktioniert. Polymorphismus

Der Code ist wie folgt:

Super-Klasse: Person

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); 
} 
} 

Subclass: Lehrer

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

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

} 

Unterklasse Student:

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); 
} 
} 

Hauptklasse: (Wo initialisiere ich die Arraylist, funktioniert es aus irgendeinem Grund nicht. (Fett ist ein Fehler in dem Compiler. Arraylist Personen = new 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(); 
    } 
} 

} 

Jede Hilfe sehr geschätzt wird

+4

Java ist case-sensitive. 'ArrayList'! =' Arraylist'. Sie möchten auch vermeiden, den Rohtyp zu verwenden, aber das ist ein etwas anderes Problem. –

Antwort

5

ArrayList wie folgt initialisiert:

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

Oder Wenn Sie eine Version unter Java SE verwenden 7:

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

Beachten Sie die <> (Diamond) und ArrayList.

+0

Ahhh .. Ich bin so chaotisch. Es tut mir Leid. Danke für die Hilfe! – Wout

0

Sie sollten ArrayList Objekt wie unten Code erstellen:

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

in über Sie <Person> in Objekterstellung hinzuzufügen haben fehlen.

+0

Danke. Ich bin sehr chaotisch. :( – Wout

0

Ihr Code:

ArrayList<Person> persons = new Arraylist(); 

Arraylist Personen = new Arraylist(); Sie haben Fall Fehler hier

versuchen

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

wenn Sie noch Fehler haben, als Ihr Java-Compiler Ebene aktualisieren werden, um 1,5 oder mehr

Verwandte Themen