输出为什么不是199而是3?this的引用明明一样 package wsc; public class Ces{ public static void main(String[] args){ Student s1= new Student(); System.out.println(s1+"!!!"+s1.age); s1.getInfo(); } } class Student extends Person{ int age=199; public void lp() { System.out.println("???"+this.age+this); } } class Person{ int age=3; public void getInfo(){ System.out.println("我的年龄:"+this.age+this); this.lp() ; System.out.println(this.age); } public void lp() { System.out.println("离谱"); } }
this.age+this);
这个语句有问题呀。
this是代表当前对象,对象怎么可以和对象的属性相加呢?
子类继承父类Person,通过子类对象调用父类中的getInfo()方法,因为这个方法,子类并没有重写,所以调用的是父类的方法,以及对应父类中的属性值。
你重写父类中的getInfo()方法,输出试试。
这是重写了父类getInfo方法的输出情况,因为子类自己有这个方法,所以调用自己自身的方法。
因为你的getInfo()是父类方法,你调用父类方法肯定输出的是父类的age
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632