gpt4 book ai didi

Java抽象类方法

转载 作者:行者123 更新时间:2023-12-05 02:47:16 26 4
gpt4 key购买 nike

我在声明抽象类的练习中遇到了这段代码:

import java.util.ArrayList;

public abstract class Box {

public abstract void add(Item item);

public void add(ArrayList<Item> items) {
for (Item item : items) {
Box.this.add(item);
}
}

public abstract boolean isInBox(Item item);
}

我无法理解 add(ArrayList<Item> item) 是什么意思方法呢。我知道它循环通过 ArrayList称为项目,但 Box.this.add(item) 是什么?做?有人可以澄清一下吗?

最佳答案

除了 @ernest_k 在评论中写的内容之外,还有一个实际用例,您实际上需要使用类名来限定方法调用,如下所示:如果您在访问字段的方法中创建匿名内部类它的外部类,如以下任意(实际上毫无用处)示例:

import java.util.ArrayList;

public abstract class Box {

public abstract void add(String item);

public void add(ArrayList<String> items) {
for (String item : items) {
Runnable r = new Runnable() {

@Override
public void run() {
add(item); // works, implicitly accesses Box.this.add
this.add(item); // does not work as "add" is not a method of the anonymous runnable
Box.this.add(item); // works
}
};
r.run();
}
}

public abstract boolean isInBox(String item);
}

关于Java抽象类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65070426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com