Dalam PHP, prinsip penggantian Liskov adalah kekangan pada pewarisan kelas Idea utama prinsip ini ialah kelas yang tidak sesuai dengan kaedah atau atribut yang berlebihan tidak boleh diwarisi secara sembarangan fungsi kelas, tetapi tidak boleh mengubah fungsi asal kelas induk.
Persekitaran pengendalian artikel ini: sistem Windows 10, PHP versi 7.1, komputer Dell G3.
Prinsip penggantian Liskov memberitahu kita bahawa jika objek kelas asas digantikan dengan objek subkelasnya dalam perisian, program akan tidak menjana Untuk sebarang ralat dan pengecualian, sebaliknya adalah tidak benar Jika entiti perisian menggunakan objek subkelas, ia tidak semestinya boleh menggunakan objek kelas asas.
Prinsip penggantian Liskov ialah salah satu cara penting untuk melaksanakan prinsip pembukaan dan penutup Memandangkan objek subkelas boleh digunakan di mana-mana objek kelas asas digunakan, cuba gunakan jenis kelas asas untuk menentukan objek dalam program. Pada masa jalanan, jenis subkelas ditentukan dan objek kelas induk digantikan dengan objek subkelas.
Apabila menggunakan prinsip penggantian Liskov, anda perlu ambil perhatian bahawa semua kaedah subkelas mesti diisytiharkan dalam kelas induk, atau subkelas mesti melaksanakan semua kaedah yang diisytiharkan dalam kelas induk. Cuba reka kelas induk sebagai kelas atau antara muka abstrak, biarkan subkelas mewarisi kelas induk atau laksanakan antara muka induk, dan laksanakan kaedah yang diisytiharkan dalam kelas induk Pada masa jalan, contoh subkelas menggantikan contoh kelas induk, dan kami boleh mengembangkan fungsi sistem dengan mudah, dan tidak perlu mengubah suai kod subkelas asal Penambahan fungsi baharu boleh dicapai dengan menambah subkelas baharu.
Fahami melalui sekeping kod
<?php //例子1 class Bird{ protect function fly(){ } } //翠鸟 class KingFisher extends Bird{ } //鸵鸟 class Ostrich extends Bird{ //鸵鸟不会飞啊 } //例子2 class A{ protect function add($a, $b){ return $a + $b; } } //重载 class B extends A{ protected function add($a, $b){ return $a + $b + 100; } } ?>
Prinsip penggantian Liskov ialah kekangan pada warisan kelas. Terdapat dua pemahaman tentang prinsip penggantian Liskov:
1 Anda tidak boleh hanya mewarisi kelas yang tidak sesuai dengan kaedah atau atribut yang berlebihan. (Contoh 1)
2 Subkelas boleh melanjutkan fungsi kelas induk, tetapi tidak boleh menukar fungsi asal kelas induk. (Contoh 2)
Prinsip penggantian Liskov mengandungi makna tersembunyi berikut:
① Subkelas boleh melaksanakan kaedah abstrak kelas induk, tetapi ia tidak boleh mengatasi kaedah bukan abstrak bagi kelas ibu bapa.
② Subkelas boleh menambah kaedah unik mereka sendiri.
③ Apabila kaedah subkelas mengatasi kaedah kelas induk, prasyarat kaedah (iaitu parameter formal kaedah) adalah lebih longgar daripada parameter input kaedah kelas induk.
④ Apabila kaedah subkelas melaksanakan kaedah abstrak kelas induk, syarat pasca kaedah (iaitu, nilai pulangan kaedah) adalah lebih ketat daripada kelas induk.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apakah idea prinsip penggantian Liskov dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!