我有一个超类,我想在我的子类中使用这个超类中的一个变量。这怎么可能?
问问题
59553 次
3 回答
15
只需创建field protected
,这意味着它应该对所有派生类可见。
于 2013-06-07T20:33:32.707 回答
5
我有一个超类,我想在我的子类中使用这个超类中的一个变量。这怎么可能?
如果您的变量被声明为protected
或public
(或)您的变量具有default
访问权限(在这种情况下您没有使用任何关键字指定)并且它们在同一个包中(-->您可以直接在子类中访问它。您可以使用this
关键字,如果你是具体的。
例子:
public class A{
protected int field=1;
}
public class B extends A{
public B(){
System.out.println(this.field);
}
public static void main(String args[]){
new B();
}
}
请注意,变量覆盖是不可能的。如果你有一个与超类同名的变量,那么你就不能直接访问它。然后你可以使用super
关键字。
public class A{
protected int field=1;
}
public class B extends A{
protected int field=3;
public B(){
System.out.println(this.field);
System.out.println(super.field);
}
public static void main(String args[]){
new B();
}
}
于 2013-06-07T20:48:35.167 回答
0
如果它是公共的或受保护的,它应该在子类的所有方法中都是可见的。您可以将其描绘为global variable
子类中的 a。
于 2013-06-07T20:34:09.660 回答