题目的主要信息:
- 父类Base中定义了计算方法calculate(),该方法用于计算两个数的乘积
- 在子类Sub中重写该方法,将计算逻辑由乘法改为除法
- 当分母为0时输出“Error”
具体做法:
父类的成员变量都是private类型的,我们无法直接访问,因此构造赋值我们用super调用父类的构造方法,访问变量值我们用getX和getY方法。 重写calculate方法,用上述父类的方法获取X和Y的值,先判断Y是否为0,再计算除法。
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);
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;
}
public void calculate() {
System.out.println(getX() * getY());
}
}
class Sub extends Base {
public Sub(int x, int y){ //父类的构造方法
super(x, y);
}
public void calculate(){
if(getY() == 0) //除数为0
System.out.println("Error");
else
System.out.println(getX() / getY());
}
}
复杂度分析:
- 时间复杂度:,直接计算,常数时间
- 空间复杂度:,无额外空间