1 java abstract-class number-formatting
Java Documentation说NumberFormat是一个抽象类.但是以下代码行让我感到困惑.
NumberFormat nf = NumberFormat.getInstance();
Run Code Online (Sandbox Code Playgroud)
NumberFormat.getInstance()当NumberFormat抽象类是什么时我们如何使用它?请有人帮我理解这个吗?
NumberFormat.getInstance()是一个静态工厂方法,它可以返回抽象NumberFormat类的具体子类的实例:
它是这样的:
abstract class Instrument {
public static Instrument getInstance() {
return new Guitar();
}
}
class Guitar extends Instrument { }
Run Code Online (Sandbox Code Playgroud)
所以,当你打电话:
Instrument.getInstance();
Run Code Online (Sandbox Code Playgroud)
你会得到一个实例Guitar,它是一个具体的子类.