JAVA-继承关系中的构造方法理解

JAVA-继承关系中的构造方法理解场景:

问题描述

提示:这里描述学习中遇到的问题:
主要是理解继承关系中构造连环引用的原理这里直接先附上代码然后讲解一下理解

package cn.extend.output;

/**
 * @author Jensen
 * @data 2022/11/3
 * @usage
 */
public class PersonC {
    String name;
    public  PersonC() {
        System.out.println("execute PersonC()");
    }

    public PersonC(String name) {
        this.name = name;
        System.out.println("execute PersonC(name)");
    }


}

package cn.extend.output;

/**
 * @author Jensen
 * @data 2022/11/3
 * @usage
 */
public class StudentC extends PersonC{
    String school;
    public StudentC(){
        System.out.println("execute Student()");
    }

    public StudentC(String name, String school){
        super(name);
        this.school = school;
        System.out.println("execute (name,school)");
    }
}


package cn.extend.output;

/**
 * @author Jensen
 * @data 2022/11/3
 * @usage
 */
public class PostGraduateC extends StudentC{
    /**
     * @param(guide="导师")
     */
    String guide;
    public PostGraduateC(){
        System.out.println("execute PostGraduateC()");
    }

    public PostGraduateC(String name, String guide, String school){
        super(name, school);
        this.guide = guide;
        System.out.println("execute PostGraduateC(name, school, guide)");
    }

}


原因分析:

当第一次去实例PostGraduateC的时候由于它引用了StudentC然后StudentC又引用了PersonC然后在类中他们是有一个优先级,第一就是先class与class层层引用优先级最高然后就是各个class中的无参方法会自动加载一遍由于方法中使用的是system.out.println()所以会直接输出到控制台中

最后:

代码中也有对代码逻辑运行的一些理解,自己在总结一下既然学习了这些方法,再想想有没有办法把这些代码的特性运用带自己的生产环境去实现一些新功能呢?emm有的话到时候再写吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值