如何在子类中使用来自父类的变量?

14

我有一个超类,我想在我的子类中使用这个超类内部的变量。如何实现?


如果被声明为protected,它将是可访问的。 - fge
请阅读Java教程中的这篇文章这篇文章 - Brian
3个回答

16

只需要将 field 设为 protected,即可将其设为对所有派生类可见。


5
我有一个超类,我想在子类中使用该超类中的变量。如何实现呢?
如果您的变量声明为protectedpublic,或者您的变量具有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();
        }
       }

2
super.field 还有另一种可能性: ((A)this).field - ROMANIA_engineer

2
如果它是公共的或受保护的,它应该在子类的所有方法中可见。您可以将其想象为子类中的全局变量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接