avatar
问一个java design的题# JobHunting - 待字闺中
h*m
1
假设我有个abstract class,和两个不同的子类。根据enum type,决定生成哪个子类:
public abstract class Base {
enum type {c1, c2}
public Base(type){
switch case(c1) return Child1(xxx);
case(c2) return Child2(xxx);
}
}
public class Child1 extends Base
public class Child2 extends Base
可是具体生成instance的时候应该怎么做呢?下面这个语句会报错abstract class
cannot be instantiated:
Base newInstance = new Base(c1);
avatar
j*r
2
Use a factory method.
public static Base create(type);
Base.create(type)

类:

【在 h********m 的大作中提到】
: 假设我有个abstract class,和两个不同的子类。根据enum type,决定生成哪个子类:
: public abstract class Base {
: enum type {c1, c2}
: public Base(type){
: switch case(c1) return Child1(xxx);
: case(c2) return Child2(xxx);
: }
: }
: public class Child1 extends Base
: public class Child2 extends Base

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。