我可以像在C#中一样访问Java中的超级属性吗?

时间:2015-11-24 18:45:42

标签: java

所以,我正在研究一个项目,我试图让一个子类的属性返回超类的值。

public class Parent
{
   BaseType m_Type;
}

public class Child extends Parent
{
   BaseType m_Type
   {
      return super.m_Type;
   }
}

基本上这就是我在C#中使用的模式。但是,这似乎不适用于Java,所以我想知道是否有类似的方法来完成相同的壮举。如果不是,没什么大不了的,我只想创造方法。看起来好像很残忍。

1 个答案:

答案 0 :(得分:2)

您可以,但会员需要受到保护或公开:

class Test
{
    public static void main (String[] args) throws java.lang.Exception
    {   
        B b = new B();
        b.print();
    }

    public static class A {
        protected int member = 1;
        public void print(){
            System.out.println("A: "+member);
        }
    }

    public static class B extends A {
        protected int member = 2;
        public void print(){
            super.print();
            System.out.println("B: "+member);
            System.out.println("C: "+super.member);
        }
    }
}
  

A:1

     

B:2

     

C:1