Class.forName()
是 Java 反射機制中的一個方法,用于動態加載類。通過這個方法,你可以加載指定的全限定名(包括包名和類名)的類,并返回與這個全限定名對應的 Class
對象。
關于是否能加載接口或抽象類:
Class.forName()
可以加載接口。當你使用 Class.forName()
加載一個接口時,它會返回一個表示該接口的 Class
對象。你可以使用這個 Class
對象來獲取接口的方法、字段等。Class.forName()
也可以加載抽象類。但是,需要注意的是,抽象類本身不能被實例化。如果你嘗試使用 Class.forName()
加載一個抽象類并嘗試創建其實例(例如,通過調用 newInstance()
方法),將會拋出 InstantiationException
異常。然而,你可以使用這個 Class
對象來獲取抽象類的方法、字段、構造函數等。此外,你還可以通過反射機制在運行時動態地創建抽象類的子類實例。總之,Class.forName()
可以加載接口和抽象類,但是對于抽象類,你不能直接實例化它,但可以使用它來獲取方法、字段等。