gpt4 book ai didi

java - 如何在抽象Java类中引用 "this"?

转载 作者:行者123 更新时间:2023-11-29 03:42:45 25 4
gpt4 key购买 nike

在 Java 中是否可以在抽象类的方法中使用 this,但作为手头子类的实例,而不仅仅是抽象类的实例?

abstract class MyAbstractClass <MyImplementingClass extends MyAbstractClass> {

public abstract MyImplementingClass self();
}

我在每个子类中覆盖了它

class MyImplementingClass extends MyAbstractClass<MyImplementingClass> {

@Override public MyImplementingClass self() {
return this;
}
}

但我想知道是否有更优雅的方法来做到这一点。特别是,不需要每个子类都覆盖像 self() 这样的例程。

最佳答案

我认为这里的问题是您的 self() 方法返回 MyImplementingClass 而不是 MyAbstractClass

你应该返回一个MyAbstractClass,返回对象的动态类型将是相关的。

我也不明白你为什么不直接使用this?它返回对象本身,具有正确的动态类型,无论它在哪里被调用。如果需要,您可以转换它

关于java - 如何在抽象Java类中引用 "this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12400204/

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