抽象类中是不能直接取得实例化对象的,可以通过其子类利用对象多态性中的向上转型取得实例化对象,还可以通过抽象类中已经定义的静态方法取得本类的实例。
关于第一点,很明白。
关于第二点,抽象类中定义的静态方法,比如NumberFormat类中,定义了静态的getInstance()方法,可以通过它取得实例。我的问题是,这种方法与构造方法私有化中的静态方法取得实例是不是一样的原理呢?或者说,这里是利用了什么原理可以取得抽象类的实例?
关于第一点,很明白。
关于第二点,抽象类中定义的静态方法,比如NumberFormat类中,定义了静态的getInstance()方法,可以通过它取得实例。我的问题是,这种方法与构造方法私有化中的静态方法取得实例是不是一样的原理呢?或者说,这里是利用了什么原理可以取得抽象类的实例?
public abstract int plus(int first, int second);
public static Simple getInstance() {
return new Simple() {
@Override
public int plus(int first, int second) {
return first+second;
}
};
}
}