rof*_*eka 2 java arraylist superclass
当我尝试创建一个类的实例并将其添加到我的arraylist时,我无法调用子中定义的方法.
我如何使这项工作?
列表类:
import java.util.*;
public class List {
private ArrayList<Person> persons;
public List(){
persons = new ArrayList<Person>();
}
public void addAssistant(){
Person person = new Assistant();
persons.add(person);
if(person instanceof Assistant){
person.assist();
}
}
}
Run Code Online (Sandbox Code Playgroud)
人员类:
public class Person {
public Person(){}
}
Run Code Online (Sandbox Code Playgroud)
助理班:
public class Assistant extends Person {
public Assistant(){}
public void assist(){
System.out.println("I am assisting!");
}
}
Run Code Online (Sandbox Code Playgroud)
编译器:line:person.assist(); 在List类的addAssistant()方法中.
编译器错误:编译器找不到符号 - 方法辅助().
你需要一个明确的演员:
if(person instanceof Assistant){
((Assistant)person).assist();
}
Run Code Online (Sandbox Code Playgroud)
但是,我认为通常不鼓励这种逻辑.
| 归档时间: |
|
| 查看次数: |
3063 次 |
| 最近记录: |