日期:2014-05-20  浏览次数:20620 次

关于抽象类抽象方法的困惑
GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] names = g.getAvailableFontFamilyNames();
for(String s:names)
   System.out.println(s);
以上可以输出所有本地支持的字体,困惑的是:
public static synchronized GraphicsEnvironment getLocalGraphicsEnvironment()
public abstract String[] getAvailableFontFamilyNames();
以上为JDK的GraphicsEnvironment类的源代码,
一个抽象类的引用调用该类的抽象方法,这是什么语法,不解。。
抽象类 抽象方法

------解决方案--------------------
GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
抽象类的引用,指向实现了该抽象类的一个对象,该对象是由方法getLocalGraphicsEnvironment()实现的,目的是为了确保 单例模式(即只有一个该类的对象)!

既然该类已经被实现了,第二个疑问也就没了……