Hi, I am

Ngô Tôn

I am a programmer.

Home / Programming / Web Development / PHP / Lớp trừu tượng (Abstract) và lớp giao diện (Interface) trong hướng đối tượng PHP

Lớp trừu tượng (Abstract) và lớp giao diện (Interface) trong hướng đối tượng PHP

Ngô Tôn sẽ tiếp tục gửi tới các bạn bài viết về lập trình hướng đối tượng trong PHP, đó chính là “Abstract và Interface”. Mình xin chia sẻ 1 bài viết được trình bày chi tiết và dễ hiểu nhất để giải thích cho mọi người tường tận ngóc ngách của vấn đề để những ai đã và đang băn khoăn về lớp trừu tượng và giao diện trong PHP.

1. Lớp trừa tượng (abstract) OOP

Lớp trừu tượng (abtract) là gì? Lớp trừu tượng cũng có thể hiểu rằng đó chính là một lớp:

  • Lớp này sẽ bao gồm những phương thức trừu tượng.
  • Những lớp khác sau khi kế thừa lớp trừu tượng sẽ cần phải định nghĩa những phương thức trừu tượng đó.
  • Mỗi một class chỉ có khả năng kế thừa một lớp trừu tượng.

Ví dụ :

Lúc này bạn có thể hiểu như sau: lớp Mamal được gọi là lớp trừu tượng và những phương thức setAge($age), getAge($age) hay eat($food) chính là những phương thức trừu tượng. Và khi 1 lớp nào đó muốn dùng lớp trừu tượng, thì nó cần phải kế thừa sử dụng từ khóa extends

Phân tích quá ví dụ trên, ta có thể thấy rằng, khi 1 lớp đó là Person kế thừa lại lớp Mamal thì nó cần phải định nghĩa lại những phương thức có trong lớp trừu tượng Mamal như : setAge(), getAge(), eat(). Ngoài ra thì class Person cũng sẽ tự định nghĩa cho mình những phương thức khác như là setJob(), getJob,…

Đến đây thì bạn đã có thể hình dung rõ ràng hơn về lớp trừu tượng rồi đúng không? Nếu vẫn chưa hình dung rõ thì các bạn cần ghi nhớ lại những điều sau đây:

Thứ nhất: Lớp trừu tượng sẽ chứa những phương thức trừu tượng.
Thứ hai : Những lớp khác khi kế thừa lớp trừu tượng sẽ cần phải định nghĩa những phương thức trừu tượng ấy.
Thứ ba :  Mỗi class chỉ có thể kế thừa một lớp trừu tượng duy nhất.

Vậy mục đích chính của lớp trừu tượng là gì ?

Chính là trong lập trình, khi bạn (hay một ai đó) xây dựng hệ thống website, và trong quá trình code hệ thống ấy, bạn muốn ép buộc lập trình viên phải tuân thủ theo một số phương thức và những phương thức này đã được định nghĩa sẵn những điều căn bản, để có thể giúp cho lập trình viên có thể kế thừa những phương thức này và phát triển lớp con của nó.

2) Giao diện (interface) trong PHP

Giao diện cũng mang những nguyên tắc của lớp trừu tượng (abstract), tuy nhiên điều khác biệt nhất đó chính là 1 lớp con có thể được phép dùng nhiều lớp giao diện (ngược lại với abstract, mỗi lớp con chỉ dùng đặc tính 1 lớp cha). Nói cách khác để các bạn có thể dễ dàng hình dung đó là interface giống với những những công cụ tiện ích đã có sẵn nhưng chưa được sử dụng bao giờ, và khi ai đó muốn làm một công việc nào đó, họ sẽ sử dụng những công cụ này, hiện thực hóa nó vì mục đích của họ. Ví như bạn muốn xây một cái chuồng gà thì bạn cần những công cụ như là búa, dao, cưa,…Ví dụ sau sẽ demo cho các bạn:

Ví dụ:

Ở ví dụ trên , ta có thể thấy rõ được sự khác biệt giữa hai lớp abtract và interface đó là:

– Interface đem lại sự lựa chọn nhiều hơn.
– Bạn có thể định nghĩa phương thức trong lớp trừa tượng (như ví dụ 1 lớp phương thức eat có thể được định nghĩa) còn lớp interface thì không được phép làm điều đó

Ngoài ra, một lớp có thể kế thừa một lớp trừu tượng và dùng nhiều lớp giao diện như ví dụ sau:

Hi vọng bài viết này sẽ giúp cho các bạn! 🙂

Ngô Tôn sẽ tiếp tục gửi tới các bạn bài viết về lập trình hướng đối tượng trong PHP, đó chính là “Abstract và Interface”. Mình xin chia sẻ 1 bài viết được trình bày chi tiết và dễ hiểu nhất để giải thích cho mọi người tường tận ngóc ngách của vấn đề để những ai đã và đang băn khoăn về lớp trừu tượng và giao diện trong PHP. 1. Lớp trừa tượng (abstract) OOP Lớp trừu tượng (abtract) là gì? Lớp trừu tượng cũng có thể hiểu rằng đó chính là một lớp: Lớp này sẽ bao gồm những…

User Rating: 5 ( 1 votes)

About ngoton

Ngô Tôn is a programmer. He is crazy about new gadgets and up to date with latest technology trends. Use comments to notify any issues you are facing.

Check Also

Tạo nhiều Sheet trong PHPExcel – Nhật ký lập trình [Chapter 2]

Các bạn nào lập trình PHP chắc hẳn đều biết tới PHPExcel – là thư …

Leave a Reply

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