英文:
Java - Return current class type
问题
<br>
我有一个名为 Num
的类,一个名为 Num2
的类,以及一个如下所示的 Num2
实例:
public class Num {
private int num;
public Num() {
num = 0;
}
public Num add2() {
this.num += 2;
return this;
}
}
public class Num2 extends Num {}
Num2 n = new Num2();
当我使用 n.add2()
时,我得到一个 Num
对象。<br>
我如何从 Num
继承到 Num2
,并分别“更改”返回类型呢?<br>
谢谢!
英文:
<br>
I have a class Num
, a class Num2
and a Num2
instance as follows:
public class Num {
private int num;
public Num() {
num = 0;
}
public Num add2() {
this.num += 2;
return this;
}
}
public class Num2 extends Num {}
Num2 n = new Num2();
When I use n.add2()
I get a Num
object. <br>
How can I inherit from Num to Num2 and "change" the return type respectively? <br>
Thank you!
答案1
得分: 0
你可以使用覆盖和向下转型的概念来实现这一点。
示例解决方案:
public class Num2 extends Num {
@Override
public Num2 add2() {
return (Num2) super.add2(); //向下转型
}
}
英文:
You can achieve this using the overriding and Downcasting concepts.
Sample solution:
public class Num2 extends Num{
@Override
public Num2 add2() {
return (Num2) super.add2();//Downcasting
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论