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有的话到时候再写吧