【发布时间】:2011-08-16 02:42:35
【问题描述】:
我有一个接口Person,我有两个类Female 和Male 实现了该接口。
对于女性类,我有一个方法getPregnancyMonth,而我的男性类没有。将该方法添加到我的接口Person 成为一个问题,因为我的Male 类现在需要从接口继承该方法;但男性永远不会怀孕。
什么是解决方案,我需要extendPerson 而不是implement?
编辑:对不起,如果我的问题不清楚。在这种情况下,我将Male 和Female 类中的get/set 方法添加到接口中。
static void Main(Form form) {
Person person = Factory.createPerson(form.getGender());
person.setName(form.getName());
if ("F".equals(gender)) {
person.setPregnancyMonth(form.getPregnancyMonth());
}
}
我的问题是,由于我的接口有getPregnancyMonth,所以我的男性必须将该方法添加到具体类中以实现接口。有没有办法避免这种情况?
【问题讨论】:
-
请解决您的问题,这不是工厂模式问题,而是关于继承和OO设计的一般问题。
标签: java oop inheritance