我仍然对引用类型的用途/何时使用哪个引用感到困惑。让我们说Geometric Object是一个抽象类,circle类是一个扩展GeometricObject的子类。这两条线之间有什么区别?什么时候比另一个更受欢迎?
GeometricObject circle1 = new Circle();
Circle circle2 = new Circle();
答案 0 :(得分:0)
以下是一个更好理解的示例:
GeometricObject抽象类: -
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);
}
}
Superclass引用变量可以包含子类对象,但是使用该变量只能访问超类的成员,因此要访问这两个类的成员,建议始终为子类创建引用变量。
注意:子类从其超类继承所有成员(字段,方法和嵌套类)。构造函数不是成员,因此它们不是由子类继承的,但是可以从子类调用超类的构造函数。
(对不起根据类定义不使用精确方法:))