java如何区分同时继承的父类和实现的接口中相同的方法

基类代码:

public class Father {
  public Father() {
    System.out.println("基类构造函数{");
    show();
    System.out.println("}");
  }
  public void show() {
    System.out.println("基类----show");
  }
}

接口:

public interface Inter {
  public void show();
}

子类的实现方法:外部类继承父类,内部类实现接口,然后内部类实现一个方法返回继承接口的内部类实例

具体代码:

//外部类继承父类

public class Child extends Father{
  public static void main(String[] arf){

    //实例化父类并调用父类方法

    new Father().show();

    //实例化子类并调用实现接口的内部类实例的实现方法

    new Child().new InnerChild().getCallBack().show();
  }

  //重写父类的方法
  public void show(){
    System.out.println("extend基类-----show");
  }

  //内部类实现接口
  private class InnerChild implements Inter{
    //实现接口的方法

    @Override
    public void show() {
      System.out.println("implements");
    }

    //返回实现接口的方法的实例
    Inter getCallBack(){
      return new InnerChild();
    }
  }
}

运行结果:

基类构造函数{
基类----show
}
基类----show
基类构造函数{
extend基类-----show
}
implements

结果的最后一行实现的就是接口的方法,当然这又暴露出一个继承的问题,下一篇文章中详细说明。

原文地址:https://www.cnblogs.com/xiufengd/p/4701433.html