スーパークラスがあり、このスーパークラス内にある変数をサブクラスに使用したいと思います。どうすればこれが可能ですか?
fieldprotected
を作成するだけです。これは、すべての派生クラスに表示される必要があることを意味します。
スーパークラスがあり、このスーパークラス内にある変数をサブクラスに使用したいと思います。どうすればこれが可能ですか?
変数が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();
}
}
パブリックまたは保護されている場合は、サブクラスのすべてのメソッドに表示されます。サブクラスではglobal variable
として描くことができます。