zoukankan      html  css  js  c++  java
  • Java组合与继承生成的类中构造函数的执行顺序

    【程序实例】

     1 import java.util.*;
     2 
     3 class Meal{
     4     Meal() {
     5         System.out.println("Meal Constructor");
     6     }
     7 }
     8 
     9 class Bread{
    10     Bread(){
    11         System.out.println("Bread Constructor");
    12     }
    13 }
    14 
    15 class  Cheese{
    16     Cheese(){
    17         System.out.println("Cheese Constructor");
    18     }
    19 }
    20 
    21 class Lettuce{
    22     Lettuce(){
    23         System.out.println("Lettuce Constructor");
    24     }
    25 }
    26 
    27 class Lunch extends Meal{
    28     Lunch(){
    29         System.out.println("Lunch Constructor");
    30     }
    31 }
    32 
    33 class PortableLunch extends Lunch{
    34     PortableLunch(){
    35         System.out.println("PortableLunch Constructor");
    36     }
    37 }
    38 
    39 public class ZuheJichengOrder extends PortableLunch{
    40     private Bread b=new Bread();
    41     private Cheese c=new Cheese();
    42     private Lettuce l=new Lettuce();
    43     public ZuheJichengOrder(){
    44         System.out.println("ZuheJichengOrder Constructor");
    45     }
    46     
    47     public static void main(String[] args){
    48         new ZuheJichengOrder();
    49     }
    50 }

    【运行结果】

    1 Meal Constructor
    2 Lunch Constructor
    3 PortableLunch Constructor
    4 Bread Constructor
    5 Cheese Constructor
    6 Lettuce Constructor
    7 ZuheJichengOrder Constructor


    【结果分析】

    从程序的执行结果可以看出,构造器的执行顺序是从根部的基类开始,一直到距离本类最近的父类,然后对本类中的数据成员进行初始化,最后执行本类的构造器的函数体。

    总结:

    复杂对象调用构造器的顺序为:

      (1)调用基类构造器。这个步骤会不断反复递归执行下去,首先是构造这中层次结构的根,然后是下一层导出类,等等,直到最底层的导出类;

      (2)按照声明顺序调用成员的初始化方法;

      (3)调用导出类构造器的主体。

  • 相关阅读:
    阿里云 oss (二) 生成令牌
    doc转html
    js 实现下载本地文件
    vue 中使用video 使用视频/嵌入视频
    小程序裁剪
    车牌号正则
    小程序单选框 radio
    小程序省市三级联动 及日期选择 (年月日)
    小程序图片选择,小程序图片上传及调用后台接口上传
    element ui省市区三级联动,及获取三级联动的name值
  • 原文地址:https://www.cnblogs.com/acode/p/5315262.html
Copyright © 2011-2022 走看看