Java中Superclass的成员变量

发布时间:2025-03-06 14:36:00 作者:小樊
来源:亿速云 阅读:104

在Java中,当一个类(子类)继承另一个类(父类或超类)时,子类会自动获得父类的所有成员变量(属性)和方法。这些成员变量可以是实例变量(非静态变量)或静态变量(类变量)。

实例变量是在类的构造方法中定义的,它们在每个对象实例中都有独立的值。当子类继承父类时,它会获得父类的所有实例变量。子类可以直接访问这些变量,但如果需要修改它们的值,可以使用super关键字来引用父类的实例变量。

例如,假设我们有一个名为Person的父类,它具有一个名为name的实例变量:

public class Person {
    protected String name;

    public Person(String name) {
        this.name = name;
    }
}

现在,我们创建一个名为Student的子类,它继承了Person类:

public class Student extends Person {
    private int studentId;

    public Student(String name, int studentId) {
        super(name); // 调用父类的构造方法来设置name变量
        this.studentId = studentId;
    }
}

在这个例子中,Student类继承了Person类的name实例变量。我们可以在Student类的构造方法中使用super(name)来调用父类的构造方法,以便为name变量设置值。然后,我们可以使用this.studentId来引用子类自己的studentId实例变量。

需要注意的是,如果子类和父类具有相同名称的实例变量,那么子类将隐藏(覆盖)父类的变量。在这种情况下,可以使用super关键字来访问父类的变量。例如:

public class Student extends Person {
    private String name; // 隐藏了父类的name变量

    public Student(String personName, String studentName, int studentId) {
        super(personName); // 调用父类的构造方法来设置Person类的name变量
        this.name = studentName; // 设置子类的name变量
    }

    public void printNames() {
        System.out.println("Parent name: " + super.name); // 访问父类的name变量
        System.out.println("Child name: " + this.name); // 访问子类的name变量
    }
}

在这个例子中,Student类具有一个与Person类相同名称的name实例变量。我们使用super.name来访问父类的name变量,而使用this.name来访问子类的name变量。

推荐阅读:
  1. Java实现的执行python脚本工具类示例【使用jython.jar】
  2. 入门大数据选择Python而不是Java的原因是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Java Superclass与子类关系如何

下一篇:RxJava的Observer如何实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》