我有一个抽象类carowners
。和两个子类person
和company
。
抽象类carowners
包含字段:
person
或company
))。我需要一个carowners
列表,其中列表中的对象将是Person
对象或Company
- 对象(以及CarOwner
类型的间接对象)。
我知道如何创建类型为Linkedlist
的{{1}}或ArrayList
,但这不是我的要求。我需要一个存储人和公司对象的abstractclassi.e carowners列表,每个对象引用另一个在抽象类中使用next。
答案 0 :(得分:0)
听起来您想要存储创建的CarOwner
的所有实例,无论它们是Person
个对象还是Company
个对象。这个可以这样实现:
abstract class CarOwner
{
private static final List<CarOwner> allCarOwners = new ArrayList<CarOwner>();
public static List<CarOwner> getAllCarOwners()
{
return Collections.unmodifiableList(allCarOwners);
}
CarOwner()
{
CarOwner.allCarOwners.add(this);
}
}
class Person extends CarOwner { }
class Company extends CarOwner { }
// To be used with
Person peson0 = new Person();
Person peson1 = new Person();
...
Company company0 = new Company();
Company company1 = new Company();
List<CarOwner> all = CarOwner.getAllCarOwners();
// Prints person0, person0 ..., company0, company1....
System.ut.println(all);
然而,如果这是所要求的,它有点值得怀疑,因为它类似于内置内存泄漏。