有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

继承调用超类方法java

我有三个类: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);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    从类C中删除B bb = new B();。并且将{}更改为{}(并且{}是可选的,因为{}a{}是-a{})

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

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