【问题标题】:Override add() method to private Set<> in another class Java?将 add() 方法重写为另一个 Java 类中的私有 Set<>?
【发布时间】:2021-07-05 19:53:27
【问题描述】:

我有 2 个 Java 文件:文件 1 是一个给定的数据结构类,其中包含一个 Set 方法,我根本不允许修改这个类。文件 2 是我正在创建的一个类,它覆盖了文件 1 中的 add() 函数。

文件 1

public class MySetClass<E> {
    private final Set<E> set = new HashSet<E>();  //is private

    public boolean add(E element){
        return set.add(element);
    }
 }

文件 2

public class OverrideMySetClass<E> extends MySetClass<E> {
    @Override
    public boolean add(E element) {
        System.out.println("Overriden Add");
        return set.add(element);      //ERR: MySetClass<E>.set is not visible (I know it's bc it's private)
    }
}

我的问题是如何将项目添加到应该覆盖 add() 的方法不可见的集合中?

【问题讨论】:

    标签: java oop overriding private


    【解决方案1】:

    你应该可以使用super.add(element)

    同理this指的是当前对象,super指的是它的直接父对象

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 2016-08-08
      • 2013-03-31
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多