Java教程

【Java SE】默认方法冲突

本文主要是介绍【Java SE】默认方法冲突,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

interface Named {
    default void getName() {
        System.out.println("named");
    }
}
interface Show {
    default void getName() {
        System.out.println("show");
    }
}
class Person {
    public void getName() {
        System.out.println("person");
    }
}

规则

1、超类优先

超类和接口的默认方法同名且参数相同时,超类方法会覆盖接口的默认方法。

class Student extends Person implements Named, Show {
}
Person超类的getName方法覆盖了接口Named、Show的getName方法

2、接口冲突

实现的两个接口具有同名且参数类型相同的方法,必须通过覆盖方法来解决冲突。

class Student implements Named, Show {
    public void getName() {
        System.out.println("student");
    }
}
必须自己实现getName方法解决冲突

 

这篇关于【Java SE】默认方法冲突的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!