面向对象-简单的(子父类构造函数的特点)-子类实例化过程

子类的实例化过程

子类的所有的构造函数,默认都会有访问父类空参数的构造函数,因为子类每一个构造函数内的第一行都有一句话隐式

的语句 super();

当父类中没有空参数的构造,子类必须要自己手动通过 super语句的形式来指定要访问父类的构造函数

当然子类的构造函数的第一行也可以手动指定 this关键字 语句来访问本类中的构造函数。

看以下例子:


public class X {
    
public static void main(String[] args){
    
         zi Z=new zi();//创建zi类对象
    }
}

class fu{


        private String  name;//加了私有化 不能访问了
        int Age;
        int height;
public fu (int Age,int height){ //有参数的构造函数
    
     System.out.println("父类");
     System.out.println("年龄"+Age);
     System.out.println("身高"+height+"米");
        }
        
     }

    class zi extends fu { //子类继承父类

     public zi(){ //构造函数

    super(18,170);//手动添加 访问父类的构造函数


    //super();这里是隐式的!


    System.out.println("子类");

         }

    }

/*

输出结果是:

父类
年龄18
身高170米
子类

为什么 创建子类对象为什么一定要访问父类的构造函数?

因为:在构造函数的第一行有一条隐式的 super();语句。

也可以手动的添加 super()访问父类的构造函数。

其实吧!这是子类对象实例的初始过程 ,她会看这父类是怎么做的,如果父类已经做了,不就不用做了。

直接拿拿过来用就可以了 不需要再重新定义了,父类也有隐式的super()语句 她会逐渐向上找!

*/

猜你喜欢

转载自blog.csdn.net/xiexaioyao/article/details/78623945