分析下列代码,输出的结果是什么
代码中有分析,在分析中的注解,看起来会比较凌乱,但是慢慢看以及分析就会发现,也比较容易懂的,其中按照1、2、3、4大级的顺序,里面分了小标题,按照目录形式(一级标题、二级标题…)的那种顺序去分析,帖子们应该能听懂吧,哈哈。
public class Test {
String name = "Rose";//2.2、被调用,输出Rose(2)
Test(){
System.out.println("Test");//1.1.1、被调用所以被输出Test①
}
Test(String name){
this.name = name;//3.2、父类的name被传入的参数john替换 4.1.1、赋值后被调用
}
}
class Demo extends Test{
String name = "Jack";//2.4、被调用,输出Jack
Demo(){
super();//1.1、调用父类的无参构造器
System.out.println("Demo");//1.2、输出Demo②
}
Demo(String s){
super(s);//3.1、将其参数”john“传入了父类的有参构造器
}
public void test(){//被创建调用
System.out.println(super.name);//2.1、调用父类的name,输出Rose③ 4.1、调用父类的name,输出john⑤
System.out.println(this.name);//2.3、调用本类的name,输出Jack④ 4.2、调用本类的name,输出Jack⑥
}
public static void main(String[] args) {
new Demo().test();
//new Demo()这是匿名对象,可以使用
//1、首先创建Demo()的无参构造器对象,所以super()调用父类的无参构造器
//2、Demo()对象调用test()方法
new Demo("john").test();
//3、创建Demo(s)的有参构造器,所以调用父类的有参构造器
//4、调用test()方法,
}
}
输出:
Test
Demo
Rose
Jack
john
Jack
要是还是很凌乱,给我评论,然后我给你一对一讲解。