Bài đăng nổi bật



Lớp trừu tượng là gì?

Các lớp trừu tượng là các lớp trong Java, khai báo một hoặc nhiều phương thức trừu tượng.
Hãy xem xét hệ thống phân cấp lớp sau bao gồm một lớp Shape được kế thừa bởi ba lớp Hình chữ nhật, Hình tròn và Tam giác. Lớp Shape được tạo để lưu vào các thuộc tính và phương thức chung được chia sẻ bởi ba lớp Hình chữ nhật, Hình tròn và Tam giác. 
notifyArea () là một phương thức như vậy được chia sẻ bởi cả ba lớp con và hiện trong lớp Shape.
Các lớp và phương thức trừu tượng của Java
Trong hướng dẫn này, bạn sẽ học-
  • Lớp trừu tượng là gì?
  • Phương thức trừu tượng là gì?
  • Lớp trừu tượng trong Java & các đặc điểm quan trọng
  • Từ khóa final trong Java
Bây giờ, giả sử bạn viết mã để tạo các đối tượng cho các lớp được mô tả ở trên. Chúng ta hãy quan sát những vật thể này sẽ trông như thế nào trong thế giới thực.
Một đối tượng của hình chữ nhật lớp sẽ cho một hình chữ nhật, một hình dạng mà chúng ta thường thấy trong cuộc sống hàng ngày.
Các lớp và phương thức trừu tượng của Java
Một đối tượng của tam giác lớp sẽ cho một hình tam giác, một hình dạng phổ biến hàng ngày.
Các lớp và phương thức trừu tượng của Java
Nhưng một đối tượng của Class Shape sẽ trông như thế nào trong một thế giới thực ??
Các lớp và phương thức trừu tượng của Java
Nếu bạn quan sát lớp Shape phục vụ trong mục tiêu của chúng tôi là đạt được sự kế thừa và đa hình. Nhưng nó không được xây dựng để khởi tạo. Các lớp có thể được gắn nhãn abstractMột lớp trừu tượng không thể được khởi tạo.
Cú pháp:
abstract class Shape{
// code }
Có thể là bạn KHÔNG gắn nhãn lớp Shape là abstract và sau đó khởi tạo nó. Nhưng đối tượng như vậy sẽ không được sử dụng trong mã của bạn và sẽ mở ra một phòng cho các lỗi tiềm ẩn. Do đó điều này là không mong muốn.

Phương thức trừu tượng là gì?

Một phương thức trừu tượng là một phương thức chỉ có định nghĩa phương thức nhưng không chứa triển khai.
Như chúng ta đã biết, công thức tính diện tích cho hình chữ nhật, hình tròn và hình tam giác là khác nhau. Phương thức notifyArea () sẽ phải được ghi đè bởi các lớp kế thừa. Không có nghĩa gì khi định nghĩa nó trong lớp Shape, nhưng chúng ta cần đảm bảo rằng tất cả các lớp kế thừa đều có phương thức.
Phương thức như vậy có thể được dán nhãn abstract.
Cú pháp:
abstract void voidArea();
Đối với một phương thức trừu tượng, không cần thực hiện phần thân.

Lớp trừu tượng trong Java: Điểm quan trọng

  • Một lớp trừu tượng có thể cũng có phương thức (đầy đủ).
  • Đối với mục đích thiết kế, một lớp có thể được khai báo là trừu tượng ngay cả khi nó không chứa bất kỳ phương thức trừu tượng nào.
  • Tham chiếu của một lớp trừu tượng có thể trỏ đến các đối tượng của các lớp con của nó do đó đạt được tính đa hình thời gian chạy. Ví dụ: Shape obj = new Rectangle();
  • Một lớp phải được gắn nhãn abstract, nếu nó có một hoặc nhiều phương thức trừu tượng.

Từ khóa final trong Java

Từ khoá final áp dụng cho các lớp, phương thức và biến. Ý nghĩa của final là thay đổi từ bối cảnh  này đến bối cảnh khác, nhưng ý tưởng thiết yếu là như nhau.
  • Một lớp final không thể được kế thừa
  • Một biến final trở thành một hằng số và giá trị của nó không thể thay đổi.
  • Một phương thức final không thể được ghi đè. Điều này được thực hiện vì lý do bảo mật và các phương pháp này được sử dụng để tối ưu hóa.
Ví dụ : - Để tìm hiểu các từ khóa abstract và final

Bước 1) Sao chép mã sau vào editor
abstract class Shape{
    final int b = 20;
    public void display(){
        System.out.println("This is display method");
    }
    abstract public void calculateAre();
}

public class Rectangle extends Shape{
    public static void main(String args[]){
        Rectangle obj = new Rectangle();
        display();
        //obj.b=200;    
    }
    //public void calculateArea(){}
}

Bước 2) Lưu, biên dịch và chạy mã.
Bước 3) Lỗi =? Phương thức trừu tượng không được triển khai trong hình chữ nhật lớp. Để khắc phục sự cố dòng không ghi chú # 15.

Bước 4) Dòng không ghi chú # 13. Lưu và biên dịch mã.

Bước 5) Lỗi =? biến b là cuối cùng

CodeLean.vn

Facebook: CodeLean Community

Post a Comment

Mới hơn Cũ hơn