抱歉,我之前没有正确说明这个问题。我尝试实现工厂模式。一个更好的例子:它是一个带有 create 函数的抽象类 Human。根据传递给创建的参数,它决定是返回其子类 Man 的实例还是子类 Woman 的实例。因此,您调用 create 时:
Human john = Human.create("Man");
子类 Man 和 Woman 继承自抽象类 Human,并在与 Human 相同的文件中定义。我不希望它可以通过以下方式扩展它:Human lisa = new Human("woman") {};
从主程序。谢谢!
编辑:
感谢所有的帮助!我最终使用的解决方案是让类 Human 公开,以及它的函数 create。Human 构造函数和 Man 和 Woman 类被声明为“包保护”。