您好,登录后才能下订单哦!
在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
变量。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。