我试图了解我在使用此代码时遇到的问题,但我找不到答案。为什么它不在编译器中打印任何东西?
请帮忙。提前谢谢。
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();
}
}
答案 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();
}
}
这有效