13

我有一个超类,我想在我的子类中使用这个超类中的一个变量。这怎么可能?

4

3 回答 3

15

只需创建field protected,这意味着它应该对所有派生类可见。

于 2013-06-07T20:33:32.707 回答
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();
        }
       }
于 2013-06-07T20:48:35.167 回答
0

如果它是公共的或受保护的,它应该在子类的所有方法中都是可见的。您可以将其描绘为global variable子类中的 a。

于 2013-06-07T20:34:09.660 回答