如下代码:
class Person {
String name;
int age;
public void introduce(){
System.out.println("姓名是" + name + ",年龄是" + age);
}
}
public class Students extends Person{
// String name;
public static void main(String[] args) {
Students students = new Students();
students.name = "小明";
students.age = 24;
students.introduce();
}
}
这段代码执行结果打印 姓名是小明,年龄是24但是把那行注释语句加上的话 打印结果是姓名是null,年龄是24为什么呢?
class Person{
private String name;
private int age;
Person(String name, int age){
this.name = name;
this.age = age;
}
public void introduce(){
System.out.println("姓名是" + name + ",年龄是" + age);
}
}
public class Students extends Person {
public static void main(String[] args){
Students students = new Person("小明",24);
students.introduce();
}
}
如果父类和子类存在同名变量,这两个同名变量会同时存在,成员变量不存在多态。也就是这两个同名变量,访问这个成员变量的是哪个类,就访问的是哪个类的变量。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。