【发布时间】:2010-04-22 15:50:45
【问题描述】:
抱歉,我之前没有正确说明问题。我尝试实现工厂模式。一个更好的例子:它是一个带有 create 函数的抽象类 Human。根据传递给创建的参数,它决定是返回其子类 Man 的实例还是子类 Woman 的实例。因此,您使用以下命令调用创建:
Human john = Human.create("Man");
子类 Man 和 Woman 继承自抽象类 Human,并在与 Human 相同的文件中定义。我不希望通过以下方式扩展它:Human lisa = new Human("woman") {}; 从主程序。谢谢!
编辑:
感谢大家的帮助!我最终使用的解决方案是让类 Human 公开,以及它的函数 create。 Human 构造函数和 Man 和 Woman 类被声明为“包保护”。
【问题讨论】:
-
您希望在 P 之外为 A 创建一个命名子类吗?
-
不,我不能没有那个,正如你现在看到的,我已经编辑了我的问题,我只想使用 create 在包中创建子类的元素。
标签: java inheritance anonymous