我們都知道,有抽象方法的類是抽象類別,反過來說,抽象類別都有抽象方法嗎?
其實這個問題非常明白,用abstract修飾的類就是抽象類別,並不是說抽象類別中必須有抽象方法,即使一個類中的方法全部實現過,也可以用abstract修飾為抽象類別,所以抽象類別不一定都有抽象方法。
下面代碼中是一個沒有抽象方法的抽象類別:
abstract class DemoClass{<br />public void printMessage(String msg){<br />System.out.println(msg);<br />}<br />}
看完這段代碼,我不盡又想,這個類可以被執行個體化嗎?我怎麼去調用該類中的公用方法呢?通過
DemoClass d = new DemoClass();
這明顯是不行的,抽象類別不能被執行個體化,即使是一個沒有抽象方法的抽象類別,也同樣不能被執行個體化。當然,還可以把printMessage方法改為static類型,那麼就可以直接調用了,代碼如下:
package net.moon.insignificant.abstractclass;</p><p>public class AbstractDemo {<br />public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException{<br />DemoClass.printMessage("Hello, World");<br />}<br />}</p><p>abstract class DemoClass{<br />public DemoClass(){}</p><p>public static void printMessage(String msg){<br />System.out.println(msg);<br />}<br />}
另外一個牛角尖問題是:static可否修飾類,將在下一篇中分析。
下一篇:
Java牛角尖【002】:類可以被static修飾嗎?