子类有与父类同名的属性,父类子类初始化顺序实例时,jvm会为父类的这个同名的属性开辟内存空间吗?

本帖最后由 赵崇友 于 21:00 编辑

Test_4(1);时Test_4类會利用有参构造函数创建对象,而在Test_4类的构造函数函数的第一行有隐含的super();语句即父类的空参数构造函数,所以是先加载父类然后再是孓类,所以才有了子类继承了父类的方法(如果子类没有复写的话)因此,当你调用get_1()方法时会先在本类(也就是子类Test_4类)中查找是否會有此方法,如果有的话会调用其自己的方法,如果没有则会再向父类查找。这个程序就是属于后面的这种情况其实,无论你在创建对象时传递什么值结果都会是15的(证实过了)。


另外楼主可能会疑问,父类和子类当中同名的变量怎么区分是这样的:父类当中萣义的变量自在父类中有效,子类定义的变量只在子类中有效这是属于成员变量的作用范围的内容。楼主应该看过了吧可以回去复习丅。提醒下这些变量在使用时前面都默认有this关键字的,所以只在本类中有效

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

当java的子类和父类具有相同名字的属性时,到底java是怎么处理的

我们先来看p.getName(),虽然P是person但是它实际代表的地址里面存的是Student,所以

我们在Student里面添加一个属性level。

对呀p是person的对象,它怎么会认识呢

验证了我们的猜测,可见属性是绑定类型的而方法是绑定对象的。

或者说属性是在编译器就确认的而方法是动态绑定(多态)。

}

我要回帖

更多关于 父类子类初始化顺序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信