这里的整个系统是一种图书馆。我有一个超类叫做 Person
,具有两个构造函数:一个构造函数将名字和姓氏作为单独的字符串,另一个构造函数将这些参数作为中间名的arraylist—其思想是有些人没有中间名。在一个叫做 Member
,我想通过传递一个空的arraylist来创建一个成员对象,该对象可以有中间名,也可以没有中间名。我的第一个想法是这样的:
if (middleNames.size() == 0) {
super(firstName, lastName);
} else {
super(firstName, middleNames, lastName);
}
但我现在意识到 super()
构造函数必须是子类构造函数中的第一个语句。希望您能看到我在这里要做的事情—有没有一种不在成员类中编写两个构造函数的好方法?有几行代码我不想重复。
1条答案
按热度按时间3okqufwl1#
你可以构造
Member
通过静态工厂方法而不是构造函数创建示例。