Kế thừa trong PHP

Nói tới lập trình hướng đối tượng (OOP) trong PHP thì không thể thiếu tính kế thừa. Tuy nhiên bạn sẽ cảm thấy hơi khó hiểu nếu không thực hành bài tập. Bài viết này Quách Quỳnh sẽ giúp cho bạn hiểu rõ hơn về kế thừa trong PHP.

Kế thừa trong PHP là gì?

Kế thừa (inheritance) là tạo ra một lớp mới dựa trên lớp có sẵn. Lớp có sẵn là lớp cha và lớp mới được ra là lớp con. Khi tạo lớp kế thừa sẽ sử dụng từ khóa Extends. Lớp con sẽ truy cập được với public, protected. Còn với private thì không. (Đọc lại: Public, Private, Protected trong PHP).

Hiểu một cách đơn giản là trong gia đình đứa con sẽ thừa hưởng mọi đặc điểm của bố. Như màu tóc, mắt, tính cách vv…

Bài tập ví dụ về kế thừa

Chúng ta có một Class là DongVat. Và lớp kế thừa là ConGa.

<?php

Class DongVat {
    //
}

Class ConGa extends DongVat {
    //
}

Tại lớp động vật sẽ có các thuộc tính cần khai báo như: chân, cân nặng, màu lông.

Và đoạn code đầy đủ

<?php

Class DongVat {
    public $cannang;
    public $maulong;
    public $sochan;

    public function cannang($cannang) {
    	return $this->cannang=$cannang;
    }

    public function maulong($maulong) {
    	return $this->maulong=$maulong;
    }

    public function sochan($sochan) {
    	return $this->sochan=$sochan;
    }
}

Class ConGa extends DongVat {
    
}

$result = new ConGa();
echo $result->cannang('4kg <br/>');
echo $result->maulong('Đỏ <br/>');
echo $result->sochan('2 <br/>');

Khi gọi Class là ConGa mặc dù không khai báo gì cả nhưng các thuộc tính và phương thức vẫn được gọi ra từ lớp mà nó đã kế thừa.

Ghi đè phương thức

Các phương thức ở lớp cha có thể bị ghi đè lên bằng cách khai báo lại trong lớp con.

Từ khóa final

Final trong PHP dùng để chặn kế thừa lớp hoặc ngăn chặn ghi đè phương thức.

Cũng với ví dụ trên bạn sẽ thêm final phía trước Class DongVat.

Và kết quả:

Fatal error: Class ConGa may not inherit from final class (DongVat)

Kết luận: Tính kế thừa bạn sẽ thường gặp trong OOP. Vì vậy với các kiến thức bài này cung cấp hi vọng bạn có cái nhìn chi tiết hơn về hướng đối tượng trong PHP.

Related Posts

Namespace trong PHP

Namespace cho phép các lớp / hàm / hằng cùng tên được sử dụng trong các ngữ cảnh khác nhau mà không có bất kỳ xung đột…

Hàm str_split() trong PHP

Bài viết này chúng ta sẽ đi tìm hiểu về hàm str_split(). Một trong những hàm thường được dùng trong PHP. Vậy cách sử dụng str_split() như…

Tạo chức năng sửa xoá thành viên bằng PHP & MySQL

Với một số trang web để quản lý thành viên (user) dễ dàng trong phần quản trị admin bạn phải khởi tạo chức năng sửa xoá thành…

Hàm str_replace trong PHP

Hàm str_replace trong PHP là gì? Hàm str_replace() trong PHP là một hàm được sử dụng để thay thế tất cả các xuất hiện của một chuỗi…

laravel8-vews-1

Views trong Laravel 8

Trong chuỗi series hướng dẫn học Laravel thì Views cũng quan trọng không kém gì so với Controller hay Model. Vậy chúng ta sẽ làm thế nào…

Validate Form trong PHP

Mặc dù trình duyệt hỗ trợ JavaScript để xác thực người dùng cho website. Tuy nhiên nếu JavaScript bị lỗi hoặc tắt đi thì công việc này…