开发者社区> 问答> 正文

java继承 在子类中声明同名变量的问题

如下代码:

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为什么呢?

展开
收起
蛮大人123 2016-03-13 14:36:36 2117 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    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();
    }
    }

    如果父类和子类存在同名变量,这两个同名变量会同时存在,成员变量不存在多态。也就是这两个同名变量,访问这个成员变量的是哪个类,就访问的是哪个类的变量。

    2019-07-17 19:02:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载