Abstract class trong java với ví dụ cụ thể

Một class được khai báo với từ khóa abstract được gọi là abstract class. Abstract class có thể chứa các abstract method và các method thông thường. Ngược lại đối với các class thông thường sẽ không thể có abstract method.

Một abstract class được khai báo bằng từ khoá abstract.

Một abstract method là một method được khai báo không có thân hàm.

Các class con thừa kế abstract class phải implement abstract method.

Abstract class không thể khởi tạo .

Đơn giản hoá đối tượng bằng cách đưa ra các thuộc tính và phương thức mà nó có và thực hiện.

Tập trung vào tính cốt lỗi của đối tượng. Ví dụ khi bạn xem method của class bất kỳ trong java chúng đều có mô tả rõ ràng về cách sử dụng, giá trị trả về, tham số truyền vào etc là bạn có thể sử dụng được.

Khai báo class Abstract

Tại sao cần abstract class?

Ở bài trước trong lập trình hướng đối tượng, chúng ta có ví dụ về Person là class cha, Boy, Girl thừa kế từ Person .

Măc dù Person đã định nghĩa method eat(), thế nhưng các class con BoyGirl đều phải override lại method eat() của Person để phù hợp. Trong thực thế nếu có thêm những class con Les, Gay thừa kế từ Person cũng đều phải override lại eat().

Vậy việc triển khai method eat() ở class Person là hoàn toàn dư thừa, và method eat() nên là một khuôn mẫu để các class khác thừa kế và tự triển khai lấy. Vì vậy java cung cấp cho chúng ta abstract class.

Các abstract method trong abstract class sẽ không có thân hàm và các class extends từ nó sẽ bắt buộc phải implement các method abstract.

Vậy chúng ta sẽ cùng implement lại ví dụ trước, mà Person sẽ trở thành abstract class với eat() là abstract method, vì nó ko cần định nghĩa ở class Person. Chúng ra sẽ thêm thuộc tính agegetAge() là method thông thường và được sử dụng ở các class con.

Output: 

Girl is eating
19
Boy is eating
18

Việc dùng abstract class sẽ giúp cho chúng ta dễ dàng control được ý muốn của mình. Nếu bạn muốn các thằng con của abstract class phải làm đều gì đó thì bạn khai báo abstract method, còn nếu như muốn cho các thằng con dùng chung thì bạn để method thông thường.

Abstract class và Concrete class trong java

Một class được khai báo với từ khoá abstract được gọi là abstract class, ngược lại được gọi là Concrete class. Như ví dụ trên thì Person là một abstract class và Boy, Girl là Concrete class.

Note:

  • Abstract class không thể khởi tạo, nó chỉ được sử dụng với mục đích cho các class khác thừa kế và mở rộng.
  • Abstract method nhất định phải chứa trong abstract class. Đồng nghĩa với việc Concrete class không thể chứa abstract method.
  • Abstract class có thể chứa abstract method hoặc method thông thường.
  • Abstract có thể trừu tượng hoá 100% bằng cách cung cấp tất cả các method đều là abstract method.
  • Abstract class có chứa cả method thông thường và abstract method là class có độ trừu tượng 0 – 100%.

Ở bài sau chúng ta sẽ tìm hiểu về interface, interface được dùng như để xác định 100% trừu tượng về các method trong interface mặc định là abstract method. Các bạn sẽ không thể triển khai bất cứ hàm nào trong interface. 

‹Previous  Next›

Please follow and like us:
error

Leave a Reply

Your email address will not be published. Required fields are marked *