例如:MyInterface myInterface = new MyInterfaceImpl();
右边是左边的实现类,左边可以接收任何实现类的对象,
对于左边来说,方法属性是固定的,具体的实现,看你的实现类。
这样,当动态创建对象的时候,你可以控制实现类,而不必改变用接口写好的代码。
左边接口,右边接口的一个实现类(接口可以有很多实现类)。
具体原理挺难说清,打个比方。
定义一个连接数据库接口,接口中只有连接数据库方法。我们如果要连接sql server数据库,就写一个连接sql server的实现类;如果要连接oracle数据库,就写一个连接oracle的实现类。我们如果要连接sql server数据库,就可以:接口 名=new sql server实现类;换个数据库,就换个类名。