Java和属性重载

时间:2018-11-14 18:05:39

标签: java inheritance properties field

我在Debian 9上使用eclipse 2018-12(4.10)/ Java 11来解决这个问题

让我声明一个基类

class A {

   private typeA prop;

   TypeA getProp(){
      return this.prop;
   }
}

和派生的人

class B extends A{
 private typeB prop;

 TypeB getProp(){
    return this.prop;
}

我期望B类中的prop在A类中隐藏该prop,但是在eclipse中,我在B类中对于getProp方法有一条错误消息: 返回类型与A.getProp()不兼容

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

通过TypeA继承-> TypeB使用JB Nizet注释解决了

答案 1 :(得分:0)

您可以尝试使用如下界面:

interface Type {
    // ...
}

class TypeA implements Type {
    // ...
}

class TypeB implements Type {
    // ...
} 

class A {

   private TypeA prop;

   Type getProp(){
      return this.prop;
   }
}

class B extends A {

    private TypeB prop;

    Type getProp(){
        return this.prop;
    }
}