gpt4 book ai didi

java - java继承调用父类(super class)方法

转载 作者:行者123 更新时间:2023-12-02 11:28:07 24 4
gpt4 key购买 nike

我有三个类:B继承A类,C继承B类。我想调用B类的fun2()方法。因此,要求用户输入 x 和 y 的值,然后在类 C 中我想显示用户调用 fun2() 方法的输入。无论用户的输入是什么,程序都会显示 x=0 y=0。如何访问 C 类中 x 和 y 的值?

import java.util.Scanner;

public class myClass{

public static void main(String[] args) {

C ccc = new C();
ccc.fun3();
}

}
class A
{
Scanner in= new Scanner (System.in);
int x, y;
public void fun1()
{
System.out.println("x= ");
x=in.nextInt();
System.out.println("y= ");
y=in.nextInt();
}
}
class B extends A
{
public void fun2()
{
System.out.println("fun2");
fun1();
}

}
class C extends B
{
B bb = new B();
public void fun3()
{
bb.fun2();
System.out.println("fun3");
System.out.println("x= "+ x);
System.out.println("y= "+ y);
}
}

最佳答案

从类 C 中删除 B bb = new B();。并将 bb.fun2(); 更改为 super.fun2(); (并且 super.可选 - 因为 extends a C is-a B)

打印bb中的xy(您已设置它们,当前您的字段位于类 C 未设置 - 因此要显示已设置的值,您需要从 bb 访问它们)。

System.out.println("x= "+ bb.x);
System.out.println("y= "+ bb.y);

关于java - java继承调用父类(super class)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49470893/

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