Java 如何在非抽象类中访问抽象类的类变量?

Java 如何在非抽象类中访问抽象类的类变量?,java,abstract-class,Java,Abstract Class,我有一个抽象类,它在类级别上有一个变量。现在我想在其他类中使用这个变量。我如何实现它 以下是我的代码 public abstract class MyClass { String name="John"; } 将变量设为public static,并与类名一起使用,如- Myclass.name 否则 public abstract class MyClass { String name="John"; String getName() { return

我有一个抽象类,它在类级别上有一个变量。现在我想在其他类中使用这个变量。我如何实现它

以下是我的代码

public abstract class MyClass
{    
String name="John";
}

将变量
设为public static
,并与类名一起使用,如-

Myclass.name
否则

public abstract class MyClass
{    
String name="John";

 String getName()
   {
      return name;
  }

}

class NewClass extends Myclass{
   //inside method 
   new NewClass().getName();
}

尝试扩展类,如:

public class NewClass extends MyClass {
    public NewClass() {
       System.out.println(super.name);
    }
}
公开getter和setter,以便任何实例都可以访问该变量,如:

MyNewClass clazz = new MyNewClass();
MyClass clazz = ....//child class?
clazz.getName();
因为您已经使用默认访问说明符定义了实例变量,所以任何类实例都可以使用
MyClassChildInstance.name


请注意:您定义的变量是特定于实例的,而不是特定于类的。如果要使其特定于类,则需要将该变量声明为静态。

1。扩展该类或2。使用反射:请举个例子please@TarunSharma,首先您需要发布您的代码。“帮助别人帮助自己”。我已经发布了代码。只想在其他类中使用name变量的值使用字段的方法就是直接使用它。类是否抽象并不重要。如果不能使用字段,那么问题在于字段的可见性,而不是类的抽象性。但是,无论如何最好不要直接使用字段——最好的做法是将其设置为私有并提供一个getter函数。我不想使用static如果它是包私有成员,您可以在
NewClass
中将其称为
name