java 继承的底层

误区1    父类私有的东西,子类无法继承
误区2    父类中非私有的成员变量,被子类继承


父类中有        构造方法        成员变量        成员方法    
        三种东西分为私有和非私有
        
        
    虽然无法调用父类中的私有变量,但是子类可以继承父类所有的成员变量
        如果要使用,可以用get和set方法区间接使用

    子类不能继承父类的私有成员方法
        只有父类中的虚方法才能被子类继承

    构造方法不能被子类继承         

    在内存中,一个子类对象在堆中的空间是分割开的,分两部分,一部分存子类成员变量,一部分存父类的
    
    
    成员方法的调用
        创建对象的时候,会从最顶级的父类开始,设置虚方法表,如果要调用父类的成员方法,
        虚方法表中查找,虚方法表中记录了经常可能被使用的方法
        虚方法
            特点:    非private,非static,非final

        如果虚方法表中没有,就会采用就近原则,向父类中一级一级往上查找

        所以,只有父类中的虚方法才能被子类继承
        


    
    内存        创建一个测试类,在其中创建子类对象
        加载测试类字节码文件,
        加载子类字节码文件,
        加载父类字节码文件,
        加载Object类字节码文件
        加载object虚方法表,
        加object虚方法表交给父类
        类将虚方法添加到表中
        父类虚方法表交给子类
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值