题意整理
- 给定一个父类Base,包含x和y属性,子类Sub继承自父类,并且多一个z属性。
- 现在子类定义了一个方法,计算x、y、z的乘积,要求补全子类的构造方法,使计算乘积的逻辑能正常进行。
方法一(调用父类构造方法)
1.解题思路
- 要计算x、y、z的乘积,那么肯定要初始化x、y、z对应的值。
- 可以通过父类构造方法初始化x,y的值,然后直接将形参的z传给z来初始化z的值。
图解展示:
2.代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int x = scanner.nextInt();
int y = scanner.nextInt();
int z = scanner.nextInt();
Sub sub = new Sub(x, y, z);
System.out.println(sub.calculate());
}
}
}
class Base {
private int x;
private int y;
public Base(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
class Sub extends Base {
private int z;
public Sub(int x, int y, int z) {
//通过父类构造方法初始化x和y
super(x,y);
//初始化z的值
this.z=z;
}
public int getZ() {
return z;
}
public int calculate() {
return super.getX() * super.getY() * this.getZ();
}
}
3.复杂度分析
- 时间复杂度:构造方法和计算逻辑均只执行一次,所以时间复杂度为。
- 空间复杂度:不需要额外的空间,所以空间复杂度为。