继承调用超类方法java

时间:2018-03-24 23:07:16

标签: java inheritance

我有三个类:B继承表单A和C表单B.我想调用fun2()方法表单B类。因此要求用户输入x和y的值,然后在C类中我想显示用户的imput调用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 个答案:

答案 0 :(得分:1)

从班级B bb = new B();移除C。并将bb.fun2();更改为super.fun2();super. 可选 - 因为extends a C 是 - a B

打印来自x的{​​{1}}和y(您已设置它们的位置,目前您在课程bb中的字段未设置 - 因此要显示已设置的值,您需要从C)访问它们。

bb
相关问题