问题描述
目前的理解接口:Interface 的作用就是包含一些抽象方法 然后再其他类中implement接口并override这些抽象方法 感觉纯粹只为了达到统一的方法名访问而作这么个抽象方法,跟直接在类中创建这么一个方法没啥区别 如果要做到像extend那样不重写方法就能使用父类的方法,Interface还是不行啊 实现的多继承也就变成了重写多个接口中的抽象方法,没有那层继承的意义啊
解决方案
嘿嘿,看看大师们是怎么用interface的。多看看设计模式,才能真正理解什么是接口继承固然重要,但多继承就会有很多问题我举一个小例子父类1有getName父类2有getName那么在子类的getName中super()返回的是父类1还是父类2接口解决了上面的问题,对于没有实现的父接口来说,我返回什么纯粹是自己决定的嘿嘿看看设计模式,大量的关于接口的好处。继承是有局限的,虽然他好理解,但不好用
解决方案二:
接口是一种协议规范在java中的反射,动态代理,spring的IOC都起着重要作用。JVM中的方法区设计和此也有紧密的联系。
解决方案三:
比如说要读取一个配置文件,这个配置文件来源可以是本地的可以是网络的,就可以声明个接口和两个实现类,/** * 配置文件接口 */public interface Config {/** * 获取配置文件 * * @return 配置文件 */Object getConfig();}/** * 本地配置文件 */public class LocalConfig implements Config {public Object getConfig() {// 获取本地配置文件return null;}}/** * 远程配置文件 */public class RemoteConfig implements Config {public Object getConfig() {// 获取远程配置文件return null;}}在使用的时候,不需要去管到底是本地的配置还是远程的配置,/** * 使用接口 */public class UseConfig {private Config config;public void user() {// 在使用之前注入,在使用的时候无需关注// 是本地文件还是远程文件Object obj = config.getConfig();}}
解决方案四:
接口的功能可不仅仅如此啊,接口可以更加的多变,像模板方法。而且确切的说多重继承是有问题的,所以java使用的是接口。