题意整理
- 给定一个Base类,若干get方法,以及一个sum方法,用于计算x和y的和。
- 要求在Base的子类里重写getX()方法,使得sum方法返回。
方法一(调用父类构造函数)
1.解题思路
- 调用父类方法获取X、Y的值。
- 在子类中,利用X的值重写getX(),变为原来的10倍。
动图展示:
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();
Sub sub = new Sub(x, y);
System.out.println(sub.sum());
}
}
}
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 final int getY() {
return y;
}
public final int sum() {
return getX() + getY();
}
}
class Sub extends Base {
//利用父类构造函数,初始化X、Y的值
public Sub(int x, int y) {
super(x, y);
}
//将X的值变为原来的10倍
public int getX() {
return 10*super.getX();
}
}
3.复杂度分析
- 时间复杂度:只需进行一次运算,所以时间复杂度为。
- 空间复杂度:不需要额外的空间,所以空间复杂度为。