接口中默认方法中的问题:
默认方法的出现,是为了方便 当所有实现类都需要添加某个方法时,在接口中能直接写实现过程。
但是,如果某个类,实现了两个接口,并且这两个接口有同名默认方法,那么这个类就无法判断是继承的是谁的类。
必须要在继承方法体中,声明继承的是哪个实现类的方法。 例如: A.super.test();
这样就会将 C++中 多重继承中 的问题 再次引进 java。
接口不是一直支持多继承吗?为什么之前没有这个问题?
以前接口中只能出现抽象方法,所有的子类都必须重写所有的抽象方法
当某个类 实现了这两个接口,并重写同一个方法的时候(必须重写),两个接口中的方法同时会被重写。
默认方法的出现,是为了方便 当所有实现类都需要添加某个方法时,在接口中能直接写实现过程。
但是,如果某个类,实现了两个接口,并且这两个接口有同名默认方法,那么这个类就无法判断是继承的是谁的类。
必须要在继承方法体中,声明继承的是哪个实现类的方法。 例如: A.super.test();
这样就会将 C++中 多重继承中 的问题 再次引进 java。
接口不是一直支持多继承吗?为什么之前没有这个问题?
以前接口中只能出现抽象方法,所有的子类都必须重写所有的抽象方法
当某个类 实现了这两个接口,并重写同一个方法的时候(必须重写),两个接口中的方法同时会被重写。