对于下述代码中一行的分析:
public class DemoMain {
public static void main(String[] args) {
MyInterface myInterface = new MyInterfaceImpl();
myInterface.method();
}
}
对于这一行:
MyInterface myInterface = new MyInterfaceImpl();
今天刚学到这里有一点小困惑,为什么左边是接口,右边是实现类呢,这里面代表什么意思呢?
查询了一些资料后有了点收获~
其实就是一个理,只要右边是左边的实现类,左边可以接收任何实现类的对象,
对于左边来说,方法属性是固定的,具体的实现,看你的实现类。
这样,当动态创建对象的时候,你可以控制实现类,而不必改变用接口写好的代码。
左边接口,右边接口的一个实现类(接口可以有很多实现类)。
具体原理挺难说清,打个比方。
定义一个连接数据库接口,接口中只有连接数据库方法。我们如果要连接sql server数据库,就写一个连接sql server的实现类;如果要连接oracle数据库,就写一个连接oracle的实现类。我们如果要连接sql server数据库,就可以:接口 名=new sql server实现类;换个数据库,就换个类名。
接口,使用方法是java中已经存在的接口的使用方法,我上面说的是自己定义接口的方式,使用时用接口。
接口不能实例化,用接口的实现类可以实例化,将实现类的对象在内存中的地址指向接口,这个接口就可以使用