笔试中关于继承和String类型的字符串容易踩坑的地方

是一道笔试题目,在写的时候没有太注意,有点太大意啦

class Parent{
    private  String name="A";
    public Parent() {
        show();
        System.out.println("parent");
    }
    public void show(){
        System.out.println("A:"+name);
    }
}
public class TestPracticeing extends Parent{
    private String name="B";
    public TestPracticeing() {
        show();
        System.out.println("Children");
    }
    public void show(){
        System.out.println("B:"+name);
    }

    public static void main(String[] args) {
        new TestPracticeing();//
    }
}

这道题目考的知识点有关于继承的知识,关于String类型的字符串的存储问题的。
题目解析如下所示
首先是对子类进行实例化,则必定要加载父类的构造函数的,而在父类的构造函数中有show()方法,而子类中有父类的show的重写,则必定要执行的是子类的重写的方法show()方法。若要输出name的值,在进行实例化的时候,此时子类还未构造,所以变量name的值为null,再之后,调用完构造方法后,进行
父类子类中访问成员变量的规则
直接通过子类对象访问成员变量
规则:等号左边时谁,就优先用谁,没有则向上找
间接通过成员方法访问成员变量
规则:该方法属于谁,就优先用谁,没有就向上找

先成员变量再构造方法,先父类再子类
多态表现:有同名方法执行子类的

结果为:
B:null
B:B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值