2015-02-23 214 views
-3

我有抽象类是有一个变量在类levele.Now我想在其他类中使用这个变量。我可以如何实现它?如何在非抽象类中访问抽象类的类变量?

以下是我的代码

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

1.扩展该类或2.使用反射。 :D – 2015-02-23 05:28:44

+0

发表一个例子请 – 2015-02-23 05:29:45

+0

@TarunSharma,首先你需要发布你的代码。 “帮助别人帮助自己”。 – hanumant 2015-02-23 05:31:24

回答

1

让你的变量public static与类名使用像 -

Myclass.name 

否则

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

String getName() 
    { 
     return name; 
    } 

} 

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

我不想使用静态 – 2015-02-23 05:38:02

+0

这是错误的,因为成员不是静态的。 – 2015-02-23 05:39:40

+0

如果它是一个包私有成员,你可以在'NewClass'中简单地将它引用为'name'。 – meskobalazs 2015-02-23 07:51:07

0

尽量延长类,如:

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;

注意事项:您定义的变量是特定于实例的,而不是类特定的。如果你想使它具体类,那么你需要声明该变量为静态。