我是靠谱客的博主 醉熏小鸭子,最近开发中收集的这篇文章主要介绍java一个类实现多个接口,这些接口具有相同的default方法的场景,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

场景描述:

一个类实现两个接口,这两个接口里面都有一个相同方法名的方法,那么该类在引用这个方法的时候,具体是是引用的那个呢?

 

目录

场景描述:

1、如果该类自己也有一个同名的方法

2.如果该类没有实现这个方法

 2.1 如果这些接口之间没有继承关系

   2.2 如果这些接口有继承关系


1、如果该类自己也有一个同名的方法

    那么毫无疑问,这个调用方法,是它自己的。

public interface Animal  {

    public void run();

    default void print(){
        System.out.println("Animal print");
    }

}

public interface Animal2 {

    public void run();

    default void print(){
        System.out.println("Animal2 print");
    }


}

public class Person implements  Animal ,Animal2 {


    @Override
    public void run() {
        System.out.println("this is person run");
    }

    @Override
    public void print() {
        System.out.println("this is person print");
    }


    public static void main(String[] args) {
        Person  person= new Person();
        person.run();
        person.print();

    }

}
this is person run
this is person print

Process finished with exit code 0

 

2.如果该类没有实现这个方法

 那么就要有区分了:

 2.1 如果这些接口之间没有继承关系

    系统会提示报错,提示需要强制实现此方法.

       

 

   2.2 如果这些接口有继承关系

    那么就会,调用子接口的方法,如下案例:

public interface Animal  {

    public void run();

    default void print(){
        System.out.println("Animal print");
    }

}


public interface Animal2  extends Animal{

    public void run();

    default void print(){
        System.out.println("Animal2 print");
    }


}

public class Person implements  Animal ,Animal2 {


    @Override
    public void run() {
        System.out.println("this is person run");
    }



    public static void main(String[] args) {
        Person  person= new Person();
        person.run();
        person.print();

    }

}

结果:

this is person run
Animal2 print

Process finished with exit code 0

 

最后

以上就是醉熏小鸭子为你收集整理的java一个类实现多个接口,这些接口具有相同的default方法的场景的全部内容,希望文章能够帮你解决java一个类实现多个接口,这些接口具有相同的default方法的场景所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部