在Java中,当一个类(子类)继承另一个类(父类)时,它们之间的变量关系如下:
继承:子类会自动继承父类的所有非私有成员变量(包括实例变量和静态变量)。这意味着子类可以直接访问和使用这些变量,而无需重新声明。
隐藏:如果子类中有一个与父类中同名的实例变量,那么子类的实例变量会隐藏(覆盖)父类的实例变量。在这种情况下,要访问父类的实例变量,需要使用super关键字。例如:
class Parent {
int x = 10;
}
class Child extends Parent {
int x = 20;
void printValues() {
System.out.println("Parent x: " + super.x); // 输出:Parent x: 10
System.out.println("Child x: " + this.x); // 输出:Child x: 20
}
}
扩展:子类可以添加新的实例变量,这些变量在父类中不存在。这些新变量不会影响父类的行为,但可以在子类的方法中使用。
静态变量:子类也可以继承父类的静态变量。但是,如果子类中有一个与父类中同名的静态变量,那么子类的静态变量会隐藏(覆盖)父类的静态变量。在这种情况下,要访问父类的静态变量,需要使用super关键字。例如:
class Parent {
static int y = 30;
}
class Child extends Parent {
static int y = 40;
void printValues() {
System.out.println("Parent y: " + super.y); // 输出:Parent y: 30
System.out.println("Child y: " + this.y); // 输出:Child y: 40
}
}
总之,子类可以继承和使用父类的变量,同时还可以添加自己的变量。如果子类和父类有同名的变量,子类的变量会隐藏父类的变量,但可以使用super关键字访问父类的变量。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。