Java 何时使用特定或抽象引用类型?

Java 何时使用特定或抽象引用类型?,java,object,abstract-class,reference-type,Java,Object,Abstract Class,Reference Type,我仍然对引用类型的作用/何时使用哪个引用感到困惑。假设Geometric对象是一个抽象类,circle类是扩展GeometricObject的子类。这两条线的区别是什么?什么时候一个会比另一个更受欢迎 GeometricObject circle1 = new Circle(); Circle circle2 = new Circle(); 下面是一个更好理解的示例: 几何对象抽象类:- public abstract class GeometricObject { int answe

我仍然对引用类型的作用/何时使用哪个引用感到困惑。假设Geometric对象是一个抽象类,circle类是扩展GeometricObject的子类。这两条线的区别是什么?什么时候一个会比另一个更受欢迎

GeometricObject circle1 = new Circle();
Circle circle2 = new Circle();
下面是一个更好理解的示例:

几何对象抽象类:-

public abstract class GeometricObject {
    int answer;
    public void addition(int x, int y){
        answer=x+y;
          System.out.println("The sum is :"+answer);
       }
    public void substraction(int x,int y){
        answer=x-y;
          System.out.println("The difference is :"+answer);
       }
}
圆子类:

public class Circle extends GeometricObject {
    int answer;
    public void multiplication(int x, int y) {
        answer = x * y;
        System.out.println("The product is :" + answer);
    }

    public static void main(String arg[]) {
        int a = 11, b = 8;
        GeometricObject circle1 = new Circle();
        circle1.addition(a, b);
        circle1.substraction(a, b);
        // circle1.multiplication(a, b); cannnot call the method. Its undifined for the GeometricObject

        Circle circle2 = new Circle();
        circle2.addition(a, b);
        circle2.substraction(a, b);
        circle2.multiplication(a, b);
    }
}

超类引用变量可以保存子类对象,但使用该变量只能访问超类的成员,因此要访问两个类的成员,建议始终为子类创建引用变量

注意:子类从其超类继承所有成员(字段、方法和嵌套类)。构造函数不是成员,因此它们不会被子类继承,但是可以从子类调用超类的构造函数


(很抱歉没有按照类定义使用精确的方法:)

非常感谢,这正是帮助我消除困惑所需要的答案。非常感谢!