class Father { int a; public Father() { } public Father(int a) { this.a = a; } public void print() { System.out.println(a); } } class Child extends Father { int a; public Child(int a) { // 将形参a的数值赋给父类成员变量a ; // 将父类成员变量a的值*10赋给本类的成员变量a ; }
时间: 2024-03-08 15:46:57 浏览: 68
这段代码中缺少一个结束花括号`}`来结束Child类的定义。同时,在Child类的构造方法中需要调用父类的有参构造方法来初始化父类的成员变量a,可以使用`super(a)`来实现。完整的代码如下:
```
class Father {
int a;
public Father() { }
public Father(int a) {
this.a = a;
}
public void print() {
System.out.println(a);
}
}
class Child extends Father {
int a;
public Child(int a) {
super(a);
this.a = super.a * 10;
}
public void print() {
super.print();
System.out.println(a);
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child(10);
child.print();
}
}
```
输出结果为:
```
10
100
```
相关问题
class Father { int a; public Father(int a) { this.a=a; } public void print() { System.out.println(a); } } class Child extends Father { int a; public Child(int a) {
super(a);
this.a = a * 2;
}
public void print() {
System.out.println(a);
super.print();
}
}
以上是一个父类Father和一个子类Child的代码。当执行下面的代码时,会输出什么?
Father f = new Child(10);
f.print();
请问输出的内容是什么?
class Father { int a =100; public void print() { System.out.println(a); } } class Child1 extends Father { int a =200; public void print() { System.out.println(a); } } class Child2 extends Father { int a =300; public void print() { System.out.println(a); } } public class Main { public static void main(String[] a) { Father obj1; obj1=new Child1(); System.out.println(obj1.a); obj1.print(); obj1=new Child2(); System.out.println(obj1.a); obj1.print(); } }
执行代码的输出结果为:
```
200
200
300
300
```
首先定义了一个 `Father` 类型的引用变量 `obj1`,然后将其赋值为 `Child1` 类型的对象。因为 `Child1` 类是 `Father` 类的子类,所以可以将 `Child1` 类型的对象赋值给 `Father` 类型的引用变量。此时,`obj1` 引用的对象是 `Child1` 类型的,所以访问 `obj1.a` 时,会输出 `200`,而调用 `obj1.print()` 方法时,会调用 `Child1` 类中重写的 `print()` 方法,输出的结果也是 `200`。
接着,将 `obj1` 赋值为 `Child2` 类型的对象。此时,`obj1` 引用的对象变成了 `Child2` 类型的,所以访问 `obj1.a` 时,会输出 `300`,而调用 `obj1.print()` 方法时,会调用 `Child2` 类中重写的 `print()` 方法,输出的结果也是 `300`。
因此,最终输出的结果为 `200 200 300 300`。
阅读全文