cLass A { public int func1(int a, int b) { return a - b; 2 7 class B extends A { public int funcl(int a, int b) { return a + b; } 7 public class ChildClass { public static void main(String[] args) { A a = new B(); B b = new B(): System.out.println("Result=" + a. func1(100, 50)) ; System.out.println("Result=" + b. func1(100, 50)) ; 7
时间: 2024-03-07 11:53:25 浏览: 55
go语言中int和byte转换方式
请注意,您在第二行中的代码存在语法错误,应该是:
class A {
public int func1(int a, int b) {
return a - b;
}
}
class B extends A {
public int func1(int a, int b) {
return a + b;
}
}
public class ChildClass {
public static void main(String[] args) {
A a = new B();
B b = new B();
System.out.println("Result=" + a.func1(100, 50));
System.out.println("Result=" + b.func1(100, 50));
}
}
在这段修正后的代码中,会输出两个结果:50和150。因为A类有一个func1方法,B类继承了A类并添加了一个同名的func1方法并覆盖了A类中的func1方法,所以在ChildClass中,a被实例化为B类的实例,调用a.func1(100, 50)实际上调用的是B类中的func1方法,而B类中的func1方法返回的是a + b,所以结果是150。b被实例化为B类的实例,调用b.func1(100, 50)实际上也是调用B类中的func1方法,因此结果也是150。
阅读全文