Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-返回当前类类型 我有一个类'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();_Java_Class_Return - Fatal编程技术网

Java-返回当前类类型 我有一个类'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();

Java-返回当前类类型 我有一个类'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();,java,class,return,Java,Class,Return,当我使用n.add2()时,我得到一个Num对象 如何分别从Num继承到Num2和“更改”返回类型 谢谢大家! 您可以使用覆盖和向下投射概念来实现这一点。 样品溶液: public class Num2 extends Num{ @Override public Num2 add2() { return (Num2) super.add2();//Downcasting } } 当前Num2 n=newnum2()在任何类之外声明。类

当我使用
n.add2()
时,我得到一个
Num
对象
如何分别从Num继承到Num2和“更改”返回类型

谢谢大家!

您可以使用覆盖和向下投射概念来实现这一点。

样品溶液:

public class Num2 extends Num{

    @Override
    public Num2 add2() {

       return (Num2) super.add2();//Downcasting

    }       

}

当前
Num2 n=newnum2()在任何类之外声明。类似的东西在Java中是不允许的。@Amongalen我为一个示例编写了它,
super.add2();归还这个没有任何铸造。