面向对象练习题---super、this关键字

35 篇文章 0 订阅

分析下列代码,输出的结果是什么
在这里插入图片描述
代码中有分析,在分析中的注解,看起来会比较凌乱,但是慢慢看以及分析就会发现,也比较容易懂的,其中按照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

要是还是很凌乱,给我评论,然后我给你一对一讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值