class A{ int m; int getM(){ return m; } int seeM() { return m; } } class B extends A { int m; int getM() { return m+ 80; } }public class E { public static void main(String[] args) i Bb = new B(); b.m = 20; System.out.print1n(b.getM());Aa = b; a.m = -100; system.out.println(a.getM());system.out.println(b.seeM()); } }运行结果
时间: 2023-06-14 15:06:42 浏览: 326
use_VC_get_mac.rar_VC控制_vc GetM_当前MAC
代码存在一些语法错误,我先对代码进行修正,修改后的代码如下:
```
class A {
int m;
int getM() {
return m;
}
int seeM() {
return m;
}
}
class B extends A {
int m;
int getM() {
return m + 80;
}
}
public class E {
public static void main(String[] args) {
B b = new B();
b.m = 20;
System.out.println(b.getM());
A a = b;
a.m = -100;
System.out.println(a.getM());
System.out.println(b.seeM());
}
}
```
运行结果为:
```
100
-100
20
```
解析:
1. 创建一个 B 类的实例 b,将其 m 属性赋值为 20。
2. 调用 b 对象的 getM() 方法,由于 B 类重写了 getM() 方法,因此调用的是 B 类中的 getM() 方法。该方法返回 m + 80 = 20 + 80 = 100。
3. 将 B 类的实例 b 赋值给 A 类的引用 a,由于 b 是 B 类的实例,因此 a 引用的是 B 类的实例。
4. 修改 a 对象的 m 属性的值为 -100。
5. 调用 a 对象的 getM() 方法,由于 B 类重写了 getM() 方法,但是 a 引用的是 B 类的实例,因此调用的是 B 类中的 getM() 方法。该方法返回 m + 80 = -100 + 80 = -20。
6. 调用 b 对象的 seeM() 方法,该方法返回 m 属性的值,即 20。
阅读全文