Computer >> Máy Tính >  >> Lập trình >> Java

Chúng ta có thể tạo một đối tượng của một lớp trừu tượng trong Java không?

Không, chúng ta không thể tạo một đối tượng của một lớp trừu tượng. Nhưng chúng ta có thể tạo một biến tham chiếu của một lớp trừu tượng. Biến tham chiếu được sử dụng để tham chiếu đến các đối tượng của các lớp dẫn xuất (lớp con của lớp trừu tượng).

Một lớp trừu tượng nghĩa là ẩn việc triển khai và hiển thị định nghĩa hàm cho người dùng được gọi là lớp Trừu tượng. Một lớp trừu tượng Java có thể có các phương thức cá thể thực hiện một hành vi mặc định nếu chúng ta biết yêu cầu và triển khai một phần, chúng ta có thể sử dụng một lớp trừu tượng.

Ví dụ

Biểu đồ lớp trừu tượng
abstract class Diagram {
   double dim1;
   double dim2;
   Diagram(double a, double b) {
      dim1 = a;
      dim2 = b;
   }
      // area is now an abstract method
      abstract double area();
}
class Rectangle extends Diagram {
   Rectangle(double a, double b) {
      super(a, b);
   }
   // override area for rectangle
   double area() {
      System.out.println("Inside Area for Rectangle.");
      return dim1 * dim2;
   }
}
class Triangle extends Diagram {
   Triangle(double a, double b) {
      super(a, b);
   }
   // override area for triangle
   double area() {
      System.out.println("Inside Area for Triangle.");
      return dim1 * dim2 / 2;
   }
}
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());
   }
}

Trong ví dụ trên, chúng ta không thể tạo đối tượng kiểu Diagram nhưng chúng ta có thể tạo một biến tham chiếu kiểu Diagram. Ở đây chúng tôi đã tạo một biến tham chiếu kiểu Diagram và biến tham chiếu lớp Diagram được sử dụng để tham chiếu đến các đối tượng của lớp Rectangle và Triangle.

Đầu ra

Inside Area for Rectangle.
Area of Rectangle is: 45.0
Inside Area for Triangle.
Area of Triangle is:40.0