我们可以在 Java 中创建抽象类的对象吗?
javaobject oriented programmingprogramming更新于 2025/5/22 5:32:17
不,我们不能创建抽象类的对象。但我们可以创建抽象类的引用变量。引用变量用于引用派生类(抽象类的子类)的对象。
抽象类意味着隐藏实现并向用户显示函数定义,这被称为抽象类。如果我们知道需求和部分实现,Java 抽象类可以具有实现默认行为的实例方法,我们可以选择抽象类。
示例
abstract class Diagram {
double dim1;
double dim2;
Diagram(double a, double b) {
dim1 = a;
dim2 = b;
}
// area 现在是一个抽象方法
abstract double area();
}
class Rectangle extends Diagram {
Rectangle(double a, double b) {
super(a, b);
}
// 覆盖矩形的 area
double area() {
System.out.println("Inside Area for Rectangle.");
return dim1 * dim2;
}
}
class Triangle extends Diagram {
Triangle(double a, double b) {
super(a, b);
}
// 覆盖三角形的面积
double area() {
System.out.println("Inside Area for Triangle.");
return dim1 * dim2 / 2;
}
}
public class Test {
public class Test {
public static void main(String args[]) {
// Diagram d = new Diagram(10, 10); // illegal now
Rectangle r = new Rectangle(9, 5);
Triangle t = new Triangle(10, 8);
Diagram diagRef; // This is OK, no object is created
diagRef = r;
System.out.println("Area of Rectangle is: " + diagRef.area());
diagRef = t;
System.out.println("Area of Triangle is:" + diagRef.area());
}
}
在上面的例子中,我们不能创建 Diagram 类型的对象,但我们可以创建一个 Diagram 类型的引用变量。这里我们创建了一个 Diagram 类型的引用变量,Diagram 类引用变量用于引用 Rectangle 和 Triangle 类的对象。
输出
Inside Area for Rectangle. Area of Rectangle is: 45.0 Inside Area for Triangle. Area of Triangle is:40.0
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

