简体   繁体   English

将 add() 方法覆盖到另一个 class Java 中的私有 Set<>?

[英]Override add() method to private Set<> in another class Java?

I have 2 Java files: File 1 is a given data structure class with methods for a Set and I am not allowed to modify this class at all.我有 2 个 Java 文件:文件 1 是一个给定的数据结构 class 与 Set 方法,我根本不允许修改此 class。 File 2 is a class I am making which overrides the add() function in File 1.文件 2 是我正在制作的 class,它覆盖了文件 1 中的add() function。

File 1文件 1

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

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

File 2文件 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)
    }
}

My question is how do I add items to a set that's not visible to the method that should be overriding add() ?我的问题是如何将项目添加到应该覆盖add()的方法不可见的集合中?

You should be able to use super.add(element)你应该可以使用super.add(element)

In the same way as this refers to the current object, super refers to its direct parent同理this指的是当前的object, super指的是它的直接父代

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM