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

Lớp trừu tượng trong Java

Một lớp có chứa từ khóa trừu tượng trong khai báo của nó được gọi là lớp trừu tượng.

  • Các lớp trừu tượng có thể chứa hoặc không thể chứa các phương thức trừu tượng, tức là các phương thức không có phần thân (public void get ();)
  • Tuy nhiên, nếu một lớp có ít nhất một phương thức trừu tượng, thì lớp đó phải được khai báo là trừu tượng.
  • Nếu một lớp được khai báo là trừu tượng, thì nó không thể được khởi tạo.
  • Để sử dụng một lớp trừu tượng, bạn phải kế thừa nó từ một lớp khác, cung cấp triển khai các phương thức trừu tượng trong đó.
  • Nếu bạn kế thừa một lớp trừu tượng, bạn phải cung cấp triển khai cho tất cả các phương thức trừu tượng trong đó.

Ví dụ

Phần này cung cấp cho bạn một ví dụ về lớp trừu tượng. Để tạo một lớp trừu tượng, chỉ cần sử dụng từ khóa trừu tượng trước từ khóa lớp, trong khai báo lớp.

/* File name : Employee.java */
public abstract class Employee {
   private String name; private String address; private int number;
   public Employee(String name, String address, int number) {
      System.out.println("Constructing an Employee");
      this.name = name; this.address = address;
      this.number = number;
   }
   public double computePay() {
      System.out.println("Inside Employee computePay"); return 0.0;
   }
   public void mailCheck() {
      System.out.println("Mailing a check to " + this.name + " " + this.address);
   }
   public String toString() {
      return name + " " + address + " " + number;
   }
   public String getName() {
      return name;
   }
   public String getAddress() {
      return address;
   }
   public void setAddress(String newAddress) {
      address = newAddress;
   }
   public int getNumber() {
      return number;
   }
}

Bạn có thể thấy rằng ngoại trừ các phương thức trừu tượng, lớp Employee giống như lớp bình thường trong Java. Lớp bây giờ là trừu tượng, nhưng nó vẫn có ba trường, bảy phương thức và một phương thức khởi tạo.

Bây giờ, bạn có thể thử khởi tạo lớp Nhân viên theo cách sau -

/* File name : AbstractDemo.java */
public class AbstractDemo {
   public static void main(String [] args) {
      /* Following is not allowed and would raise error */
      Employee e = new Employee("George W.", "Houston, TX", 43);
      System.out.println("\n Call mailCheck using Employee reference--");
      e.mailCheck();
    }
 }

Khi bạn biên dịch lớp trên, nó mang lại cho bạn lỗi sau -

Employee.java:46: Employee is abstract; cannot be instantiated
Employee e = new Employee("George W.", "Houston, TX", 43); ^ 1 error