覆盖Java代码

时间:2014-08-06 13:54:53

标签: java

我试图了解我在使用此代码时遇到的问题,但我找不到答案。为什么它不在编译器中打印任何东西?

请帮忙。提前谢谢。

public class ClassA {

     int x = 0;
     int y = 1;

     public void methodA() {

         System.out.println( "x is " + x + " , and y is " + y) ;
         System.out.println( "I am an instance of:  " + this.getClass().getName() ) ;
     }
}

class ClassB extends ClassA {

    int z = 3; 

    public static void main(String[] args) {

        ClassB obj1 = new ClassB();
        obj1.methodA();

    }
}

3 个答案:

答案 0 :(得分:10)

因为您只是编译,而不是运行代码。运行。它会将结果打印到控制台。

截至目前,您的代码中没有覆盖概念。每个孩子都是父母。您可以访问该方法,并打印Parent(ClassA)的实现。

如果您希望在methodA()中查看ClassB的实现,请参阅覆盖的概念,那么您需要在ClassB中覆盖它并提供与{{1}相关的实现}}

答案 1 :(得分:1)

我没有任何问题,一切正常。它打印:

x is 0 , and y is 1
I am an instance of:  test.ClassB

Process finished with exit code 0

检查您的IDE。

答案 2 :(得分:0)

主要方法的课程应该是公开的

class ClassA {

 int x = 0;
 int y = 1;

 public void methodA() {
 System.out.println( "x is " + x + " , and y is " + y) ;
 System.out.println( "I am an instance of:  " + this.getClass().getName() ) ;
     }
}

公开类ClassB扩展了ClassA {     int z = 3;

public static void main(String[] args) {
    ClassB obj1 = new ClassB();
    obj1.methodA();

}

}

这有效