java求解惑

2025-02-25 01:17:50
推荐回答(4个)
回答1:

这就是getter和setter的作用

简单地说,成员函数(方法)具有多态性,成员变量不具有多态性。所以public void show()中只会访问基类的name成员和age成员,不会访问派生类具有相同名字的新成员

回答2:

你把输出语句打印在Person中,那打出来的就是Person的属性啊,你就是Student stu = new Student() 打出来的一样是
name:人类
age:10

回答3:

因为你Student类中重新定义了 name 和 age
这不属于Person类了
所以调用show()方法的时候,找的是Person类的name 和age
如果你想输出
name:学生
age:20
的话
那么可以在学生内的构造方法中赋值
public Student(){
name="学生";
age=20;
}
不要重新定义
String name; int age;
这两个属性

回答4:

亲,你调用的父类的方法。
子类没有show()方法呢。