【发布时间】:2017-03-14 11:11:12
【问题描述】:
我最近开始编程,忙于继承、多态和覆盖。现在我刚刚制作了这个程序,由于某种原因它不起作用。 编译器下划线 " = new 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 people = 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();
}
}
}
感谢任何帮助。
【问题讨论】:
-
Java 区分大小写。
ArrayList!=Arraylist。您还希望避免使用原始类型,但这是一个稍微不同的问题。
标签: java inheritance arraylist polymorphism overriding