误区1 父类私有的东西,子类无法继承
误区2 父类中非私有的成员变量,被子类继承
父类中有 构造方法 成员变量 成员方法
三种东西分为私有和非私有
虽然无法调用父类中的私有变量,但是子类可以继承父类所有的成员变量
如果要使用,可以用get和set方法区间接使用
子类不能继承父类的私有成员方法
只有父类中的虚方法才能被子类继承
构造方法不能被子类继承
在内存中,一个子类对象在堆中的空间是分割开的,分两部分,一部分存子类成员变量,一部分存父类的
成员方法的调用
创建对象的时候,会从最顶级的父类开始,设置虚方法表,如果要调用父类的成员方法,
虚方法表中查找,虚方法表中记录了经常可能被使用的方法
虚方法
特点: 非private,非static,非final
如果虚方法表中没有,就会采用就近原则,向父类中一级一级往上查找
所以,只有父类中的虚方法才能被子类继承
内存 创建一个测试类,在其中创建子类对象
加载测试类字节码文件,
加载子类字节码文件,
加载父类字节码文件,
加载Object类字节码文件
加载object虚方法表,
加object虚方法表交给父类
类将虚方法添加到表中
父类虚方法表交给子类