Rumah pembangunan bahagian belakang tutorial php 【转】PHP透过接口实现多重继承

【转】PHP透过接口实现多重继承

Jun 13, 2016 am 11:03 AM
function

【转】PHP通过接口实现多重继承

PHP类虽然是单继承的,但是可以通过其它特殊的方式实现多重继承,比如使用接口实现,只要把类的特征抽象为接口,并通过实现接口的方式让对象有多重身 份,通过这样就可以模拟多重继承了。


下面就是一个用接口模拟多重继承的例子,源代码如下:

  1. ?
  2. interface?UserInterface{?// 定义User的接口 ?
  3. ?function?getname(); ?
  4. } ?
  5. interface?TeacherInterface{?//teacher 相关接口 ?
  6. ?function?getLengthOfService(); ?
  7. } ?
  8. class?User?implements?UserInterface?{?// 实现UserInterface接口 ?
  9. ?private?$name?=?"tom"; ?
  10. ?public?function?getName(){ ?
  11. ??return?$this->name; ?
  12. ?} ?
  13. } ?
  14. class?Teacher?implements?TeacherInterface?{?// 实现TeacherInterface接口 ?
  15. ?private?$lengthOfService?=?5;?//?工 龄? ?
  16. ?public?function?getLengthOfService(){ ?
  17. ??return?$this->lengthOfService; ?
  18. ?} ?
  19. } ?
  20. //?继承自User类,同时实现了 TeacherInterface接口. ?
  21. class?GraduateStudent?extends?User?implements?TeacherInterface?{ ?
  22. ?private?$teacher?; ?
  23. ?public?function?__construct(){ ?
  24. ??$this->teacher?=?new?Teacher();?? ?
  25. ?}? ?
  26. ?public?function?getLengthOfService(){ ?
  27. ??return?$this->teacher->getLengthOfService(); ?
  28. ?} ?
  29. } ?
  30. class?Act{ ?
  31. ?//注意这里的类型提示改成了接口类型 ?
  32. ?public?static?function?getUserName(UserInterface?$_user){ ?
  33. ??echo?"Name?is?"?.?$_user->getName()?."
    "; ?
  34. ?} ?
  35. ?//这里的类型提示改成了 TeacherInterface类型. ?
  36. ?public?static?function??getLengthOfService(TeacherInterface?$_teacher){ ?
  37. ??echo?"Age?is?"?.$_teacher->getLengthOfService()?."
    "; ?
  38. ?} ?
  39. } ?
  40. $graduateStudent?=?new?GraduateStudent(); ?
  41. Act::getUserName($graduateStudent); ?
  42. Act::getLengthOfService($graduateStudent); ?
  43. //结果正如我们所要的,实现了有多重身份的一个对象. ?
  44. ?>?


示例运行结果如下:

Name is tom

Age is 5

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah maksud fungsi? Apakah maksud fungsi? Aug 04, 2023 am 10:33 AM

Fungsi bermaksud fungsi. Ia adalah blok kod yang boleh digunakan semula dengan fungsi tertentu Ia boleh menerima parameter input, melakukan operasi tertentu, dan mengembalikan hasil daripada blok yang boleh digunakan semula. kod untuk meningkatkan kebolehgunaan semula dan kebolehselenggaraan kod.

Apakah tujuan fungsi 'enumerate()' dalam Python? Apakah tujuan fungsi 'enumerate()' dalam Python? Sep 01, 2023 am 11:29 AM

Dalam artikel ini, kita akan belajar tentang fungsi enumerate() dan tujuan fungsi "enumerate()" dalam Python. Apakah fungsi enumerate()? Fungsi enumerate() Python menerima pengumpulan data sebagai parameter dan mengembalikan objek penghitungan. Objek penghitungan dikembalikan sebagai pasangan nilai kunci. Kuncinya ialah indeks yang sepadan dengan setiap item, dan nilainya ialah item. Syntax enumerate(iterable,start) Parameters iterable - Yang diluluskan dalam pengumpulan data boleh dikembalikan sebagai objek enumeration, dipanggil iterablestart - Seperti namanya, indeks permulaan objek enumeration ditakrifkan oleh permulaan. kalau kita abaikan

Penjelasan terperinci tentang peranan dan fungsi jadual MySQL.proc Penjelasan terperinci tentang peranan dan fungsi jadual MySQL.proc Mar 16, 2024 am 09:03 AM

Penjelasan terperinci tentang peranan dan fungsi jadual MySQL.proc ialah sistem pengurusan pangkalan data relasi yang popular Apabila pembangun menggunakan MySQL, mereka sering melibatkan penciptaan dan pengurusan prosedur tersimpan (StoredProcedure). Jadual MySQL.proc ialah jadual sistem yang sangat penting Ia menyimpan maklumat yang berkaitan dengan semua prosedur tersimpan dalam pangkalan data, termasuk nama, definisi, parameter, dsb. prosedur tersimpan. Dalam artikel ini, kami akan menerangkan secara terperinci peranan dan kefungsian jadual MySQL.proc

file_exists() fungsi dalam PHP file_exists() fungsi dalam PHP Sep 14, 2023 am 08:29 AM

Kaedah file_exists menyemak sama ada fail atau direktori wujud. Ia menerima sebagai hujah laluan fail atau direktori untuk diperiksa. Inilah kegunaannya - ia berguna apabila anda perlu mengetahui sama ada fail wujud sebelum memprosesnya. Dengan cara ini, apabila mencipta fail baharu, anda boleh menggunakan fungsi ini untuk mengetahui sama ada fail itu sudah wujud. Syntax file_exists($file_path) Parameter file_path - Tetapkan laluan fail atau direktori untuk disemak kewujudan. Diperlukan. Kembalikan kaedah file_exists() kembali. Mengembalikan TrueFalse jika fail atau direktori wujud, jika fail atau direktori tidak wujud Contoh mari kita lihat semakan untuk fail "candidate.txt" dan walaupun fail

Penggunaan dan fungsi fungsi Vue.use Penggunaan dan fungsi fungsi Vue.use Jul 24, 2023 pm 06:09 PM

Penggunaan dan Fungsi Fungsi Vue.use Vue ialah rangka kerja bahagian hadapan yang popular yang menyediakan banyak ciri dan fungsi berguna. Salah satunya ialah fungsi Vue.use, yang membolehkan kami menggunakan pemalam dalam aplikasi Vue. Artikel ini akan memperkenalkan penggunaan dan fungsi fungsi Vue.use dan memberikan beberapa contoh kod. Penggunaan asas fungsi Vue.use adalah sangat mudah, cuma panggilnya sebelum Vue diwujudkan, menghantar pemalam yang anda ingin gunakan sebagai parameter. Berikut ialah contoh mudah: //Perkenalkan dan gunakan pemalam

Apakah kegunaan fungsi js Apakah kegunaan fungsi js Oct 07, 2023 am 11:25 AM

Penggunaan fungsi fungsi js ialah: 1. Fungsi Isytihar; 3. Parameter fungsi; 5. Fungsi tanpa nama;

Cara menggunakan fungsi SOA dalam PHP Cara menggunakan fungsi SOA dalam PHP May 18, 2023 pm 01:10 PM

Dengan perkembangan Internet, SOA (seni bina berorientasikan perkhidmatan) telah menjadi seni bina teknikal yang penting dalam sistem peringkat perusahaan hari ini. Perkhidmatan dalam seni bina SOA boleh digunakan semula, disusun semula dan diperluaskan, di samping memudahkan proses pembangunan dan penyelenggaraan sistem. Sebagai bahasa pengaturcaraan Web yang digunakan secara meluas, PHP juga menyediakan beberapa perpustakaan fungsi untuk melaksanakan SOA. Seterusnya, kami akan memperincikan cara menggunakan fungsi SOA dalam PHP. 1. Konsep asas SOA ialah idea dan seni bina sistem teragih.

clearstatcache() fungsi dalam PHP clearstatcache() fungsi dalam PHP Sep 07, 2023 am 09:33 AM

Fungsi clearstatcache() digunakan untuk mengosongkan cache status fail. PHP menyimpan cache maklumat yang dikembalikan oleh fungsi berikut −stat()lstat()file_exists()is_writable()is_readable()is_executable()is_file()is_dir()filegroup()fileowner()filesize()filetype()fileperms() Apakah untuk melakukan Untuk memberikan prestasi yang lebih baik. Sintaks voidclearstatecache() Parameter NA Nilai pulangan clearstatcache(

See all articles