① java 為什麼介面不能實例化
介面不可以實例化,但是介面對象可以指向它的實現類對象。
介面可以看做特殊的抽象類,只是所有的方法都是抽象方法(沒有實現的方法),介面的方法都是默認public abstract的,所以介面不能被實例化。
舉個列子:
List Set Map都是介面,使用時先實現他們的類對象:
List<String> list = new ArrayList<>();
Factory介面可以用來代表實現它的類。
比如:
public interface thing;
public class fruit implements thing;
thing something = new fruit();
這個something指的就是水果。
介面編程是為了實現多繼承。
② Java實例化對象的幾種方式
1、用new語句創建對象,這是最常見的創建對象的方法。
2、通過工廠方法返回對專象,如:String str = String.valueOf(23);
3、運用反屬射手段,調用java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。如:Object obj = Class.forName("java.lang.Object").newInstance();
4、調用對象的clone()方法。
5、通過I/O流(包括反序列化),如運用反序列化手段,調用java.io.ObjectInputStream對象的 readObject()方法。