• java继承问题


    代码:

    父类:

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

    子类:

    public class Child extends Father{
      public static void main(String[] arf){
        new Father().show();
        System.out.println("--------------------我是分割线-------------------------");
        new Child().show();
        System.out.println("--------------------我是分割线-------------------------");
        new Father().show();
      }
      public Child(){
        System.out.println("子类构造函数");
      }
      public void show(){
        System.out.println("extend基类-----show");
      }
    }

    运行结果:

    --------------------我是分割线-------------------------
    基类构造函数{
    基类----show
    inner class 构造函数
    }
    基类----show
    --------------------我是分割线-------------------------
    基类构造函数{
    extend基类-----show
    inner class 构造函数
    }
    子类构造函数
    extend基类-----show
    --------------------我是分割线-------------------------
    基类构造函数{
    基类----show
    inner class 构造函数
    }
    基类----show
    --------------------我是分割线-------------------------

         从运行结果上可以看出来运行的顺序。

         特别,运行结果中间部分构造函数中,调用的show()是子类的重写的方法,即子类的方法。

  • 相关阅读:
    做才是得到
    常用工具汇总
    迎接2017
    新年礼物
    2017
    asp.net core 日志
    板子|无向图的割点
    11/06信竞快乐模拟赛
    动态规划复习
    894D
  • 原文地址:https://www.cnblogs.com/xiufengd/p/4701488.html
Copyright © 2020-2023  润新知