抽象方法如何实现getInstance

在阎森的简单工厂中提到了java.text.DateFormat类中使用了三个静态方法:
public final static DateFormat getDateInstance();
public final static DateFormat getDateInstance(int style);
public final static DateFormat getDateInstance(int style,Locale locale);

DateFormat 是抽象类,那么这三个方法需要在子类中实现(比如子类为SonDateFormat),实现后调用DateFormat.getDateInstance()是不是返回子类的实例呢?
public class SonDateFormat extends DateFormat{
.
.
private Static SonDateFormat s = new SonDateFormat ();
public final static SonDateFormat getDateInstance(){
return s;
}}//final static 方法可以这样覆盖吗?

.
.
.
.
}
请高手指点,谢谢

Sure

要是有两个子类,那调用之后返回哪一个子类的方法呢?