① 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()方法。