web-dev-qa-db-ja.com

スーパークラスからサブクラスへの変数の使用方法は?

スーパークラスがあり、このスーパークラス内にある変数をサブクラスに使用したいと思います。どうすればこれが可能ですか?

6
Mikel

fieldprotectedを作成するだけです。これは、すべての派生クラスに表示される必要があることを意味します。

10
SLaks

スーパークラスがあり、このスーパークラス内にある変数をサブクラスに使用したいと思います。どうすればこれが可能ですか?

変数がprotectedまたはpublicとして宣言されている場合(または)変数にdefaultアクセス権限があり(この場合、キーワードで指定しない)、それらは同じですpackage(->サブクラスで直接アクセスできます。具体的には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();
        }
       }
4
pinkpanther

パブリックまたは保護されている場合は、サブクラスのすべてのメソッドに表示されます。サブクラスではglobal variableとして描くことができます。

0
Shamim Hafiz