继承的时候,为什么实例化子类的对象时,还会加载父类的所有代码?

本文通过示例代码详细解释了Java中继承时类的初始化顺序,包括静态变量、静态初始化块、变量、初始化块及构造器的执行流程。在创建子类对象时,即使没有显式创建父类对象,父类的代码也会被加载,这是由于Java的类装载机制导致的。在装载过程中,会先加载父类并执行其静态初始化,然后才进行子类的静态初始化和对象创建。
摘要由CSDN通过智能技术生成

而对于继承的情况初始化顺序又会是怎么样的呢?请看下面示例代码:

**

*package com.trs.oop;

/**

  • 有继承关系的类初始化顺序
  • @author xiayunan
  • @date 2018年7月5日

*/
***class Parent {
// 静态变量
public static String p_StaticField = “父类–静态变量”;
protected int i = 1;
protected int j = 8;
// 变量
public String p_Field = “父类–变量”;

// 静态初始化块 
static {   
    System.out.println(p_StaticField);   
    System.out.println("父类--静态初始化块");   
}   

// 初始化块 
{   
    System.out.println(p_Field);   
    System.out.println("父类--初始化块");   
}   

// 构造器 
public Parent() {   
    System.out.println("父类--构造器"); 
    System.out.println("i=" + i + ", j=" + j);
    j = 9;
}   

}

以上代码,为什么父类的内容,全部被加载,子类创建对象的时候,不是继承属性吗?难道还继承方法?

斜体样式
**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值