【问题标题】:how to use a variable from a superclass to a subclass?如何使用从超类到子类的变量?
【发布时间】:2013-06-07 20:30:24
【问题描述】:

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

【问题讨论】:

  • 如果声明为protected,则可以访问。
  • 从 Java 跟踪中读取 thisthis

标签: java class variables


【解决方案1】:

只需将字段设为protected,这意味着它应该对所有派生类可见。

【讨论】:

    【解决方案2】:

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

    如果您的变量声明为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();
            }
           }
    

    【讨论】:

    • super.field 还有一种可能性:((A)this).field
    【解决方案3】:

    如果它是公共的或受保护的,它应该在子类的所有方法中都是可见的。你可以把它想象成子类中的global variable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 2016-05-27
      • 2012-04-09
      • 1970-01-01
      • 2015-07-10
      • 2021-10-04
      相关资源
      最近更新 更多