
java如何用父类中的变量
用户关注问题
如何在子类中访问父类的变量?
我创建了一个父类和一个子类,想在子类中使用父类定义的变量,该怎么实现?
在子类中访问父类变量的方法
如果父类中的变量被声明为public或protected,子类可以直接访问这些变量。若变量为private,可以通过父类提供的公共getter和setter方法访问。示例:
class Parent {
protected int number = 10;
}
class Child extends Parent {
void printNumber() {
System.out.println(number); // 直接访问父类protected变量
}
}
能否在父类中定义变量,并由子类初始化?
父类声明了一个变量,想让子类给这个变量赋值,有什么推荐的方式?
让子类初始化父类变量的方案
父类变量可以通过构造方法或setter方法由子类赋值。通常父类变量为protected或private,建议提供公共方法设置值。子类调用父类的构造器或设置方法即可完成赋值。
示例:
class Parent {
protected int number;
public Parent(int num) {
this.number = num;
}
}
class Child extends Parent {
public Child(int num) {
super(num);
}
}
父类变量有多个,子类如何区分使用?
当父类中定义了多个变量,子类怎么正确使用其中某一个而不产生混淆?
区分和使用父类多个变量的技巧
子类可以通过变量名直接访问继承的父类变量,若变量名冲突,可以使用super关键字明确指向父类变量。此外,合理的命名以及访问权限设计能帮忙避免混淆。举个例子:
class Parent {
protected int value = 5;
protected int number = 10;
}
class Child extends Parent {
int value = 20;
void printValues() {
System.out.println(value); // 子类的value
System.out.println(super.value); // 父类的value
System.out.println(number); // 父类的number
}
}