</pre><pre name="code" class="csharp"><span style="font-size:18px;">public class TestMain { public static void main(String[] args) { AbstractTest.out(); } } </span>
<span style="font-size:18px;">public class TestMain { public static void main(String[] args) { AbstractTest.out(); } } </span>
如上面的程序所看到的是能够执行的。
理解:普通情况下抽象类中能够包括抽象方法和非抽象方法,静态类中仅仅能包括静态成员,全部的静态成员也仅仅能包括在静态类中。
由于静态static的本质是包括abstract和sealed的,所以静态方法能够包括在抽象类中,并通过抽象类名.静态方法 来使用该方法。又由于静态包括sealed特性,所以不能够被继承。
实际上这是可以避免的,因为抽象类不能被实例化,但是,必须使用在父类方法在子类实例化对象,该方法可以直接写入到静态方法,我们不能用抽象类的子类实现的方法。