How to use interface interface to implement multiple inheritance
Editor to share with you how to use the interface interface to achieve multiple inheritance, I believe most people do not know much about it, so share this article for your reference, I hope you can learn a lot after reading this article, let's learn about it!
The following is an example of multiple inheritance using an interface (interface). The source code is as follows:
InterfaceUserInterface {/ / defines the interface of User
Functiongetname ()
}
InterfaceTeacherInterface {/ / teacher related APIs
FunctiongetLengthOfService ()
}
ClassUserimplementsUserInterface {/ / implement UserInterface interface
Private$name= "tom"
PublicfunctiongetName () {
Return$this- > name
}
}
ClassTeacherimplementsTeacherInterface {/ / implement TeacherInterface interface
Private$lengthOfService=5;// length of service
PublicfunctiongetLengthOfService () {
Return$this- > lengthOfService
}
}
How to use interface (interface) to implement multiple inheritance
/ / inherits from the User class and implements the TeacherInterface interface.
ClassGraduateStudentextendsUserimplementsTeacherInterface {
Private$teacher
Publicfunction__construct () {
$this- > teacher=newTeacher ()
}
PublicfunctiongetLengthOfService () {
Return$this- > teacher- > getLengthOfService ()
}
}
ClassAct {
/ / notice that the type prompt here has been changed to interface type.
PublicstaticfunctiongetUserName (UserInterface$_user) {
Echo "Nameis". $_ user- > getName (). "
"
}
/ / the type prompt here has been changed to TeacherInterface type.
PublicstaticfunctiongetLengthOfService (TeacherInterface$_teacher) {
Echo "Ageis". $_ teacher- > getLengthOfService (). "
"
}
}
$graduateStudent=newGraduateStudent ()
Act::getUserName ($graduateStudent)
Act::getLengthOfService ($graduateStudent)
/ / as a result, an object with multiple identities is implemented.
? >
The running result of the example is as follows:
Nameistom
Ageis5
The above is all the content of the article "how to use interface interface to achieve multiple inheritance". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!