这就是实现多继承,一个类拥有从多个父类继承的多个已经实现的相同签名方法(超类如果有同名方法会直接被父类覆盖,所以只需要考虑父类).
实现多继承设计中有着多个同名可调用方法的歧义性的问题需要解决....C++对此问题的解决办法是允许当前子类对象调用任何一个父类的任何方法,但是遇到歧义时编译报错,要求前面加上类名和域解析符::来明确指定调用的目标方法,消除歧义.
interface FlyAnimal{...Java8之前对于接口只能拥有方法声明和常量的设计,保证了只能存在声明多继承,避免了实现多继承情况的出现.
2.成员命名冲突 与实现多继承类似,多继承时,一个类会拥有从多个父类继承的多个同名成员变量,同样存在着歧义性的问题需要解决...C++对此问题的解决办法与实现多继承的解决办法相同,仍然是要求在有歧义时消除歧义.
3.构造函数执行顺序 构造函数是很重要很特殊的函数,意义不言而喻....Java8加入了默认方法机制后不可避免地需要解决曾经千方百计避免的实现多继承方法歧义性问题.
1)类中的方法优先级最高.类或父类中声明的方法的优先级高于任何声明为默认方法的优先级.
2)如果无法依据第一条进行判断