子类继承父类为什么还需要get方法,而不能直接用变量?

在父类Base中定义了计算方法calculate(),该方法用于计算两个数的乘积(X*Y)。请在子类Sub中重写该方法,将计算逻辑由乘法改为除法(X/Y)。注意,当分母为0时输出“Error”。
正确代码
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);
        }
 
        @Override
        public void calculate() {
            if(getY()==0){
                System.out.println("Error");
            }else{
                System.out.println(getX() /getY());
            }
        }
        //write your code here......
 
    }

我的代码在Sub处为什么不能直接用x跟y,而是需要getX()
class Sub extends Base {
     //private 不能被继承
    //write your code here......
    private int x;
    private int y;
    public Sub(int x ,int y){
       super(x,y);
    }
    
    public void calculate(){
         if(y==0) System.out.print("Error");
        else System.out.print(x/y);
    }
    

}


class Sub extends Base {
     //private 不能被继承
    //write your code here......
    private int x;  // 私有变量 x
    private int y;
    public Sub(int x ,int y){
       super(x,y);   // 在实例化时,未将变量保存至私有变量中
    }
    
    public void calculate(){
         if(y==0) System.out.print("Error");
        else System.out.print(x/y); // 此处使用的是当前类的私有变量,而不是基类中的私有变量
    }
    
 
}