在另一个 class Java 中将 add() 方法覆盖为私有 Set<>?
Override add() method to private Set<> in another class Java?
我有 2 个 Java 文件:文件 1 是一个给定的数据结构 class,带有 Set 的方法,我根本不允许修改这个 class。文件 2 是我正在制作的 class,它会覆盖文件 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()
?
您应该可以使用 super.add(element)
与this
引用当前对象的方式相同,super
引用其直接父对象
我有 2 个 Java 文件:文件 1 是一个给定的数据结构 class,带有 Set 的方法,我根本不允许修改这个 class。文件 2 是我正在制作的 class,它会覆盖文件 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()
?
您应该可以使用 super.add(element)
与this
引用当前对象的方式相同,super
引用其直接父对象