- <?php
- /**
- * 数据库基类
- */
- interface SqlDri {
- public function connect();
- }
- /**
- * mysql子类
- */
- class MysqlObj implements SqlDri {
- public function connect() {
- print "mysql connect success!";
- }
- }
- /**
- * mssql子类
- */
- class MssqlObj implements SqlDri {
- public function connect() {
- print "mssql connect success!";
- }
- }
- /**
- * 多态入口
- */
- class SqlEnt {
- public function connect(SqlDri $SqlDri) {
- $SqlDri->connect();
- }
- }
- $SqlEnt = new SqlEnt();
- $SqlEnt->connect(new MysqlObj());
- //$SqlEnt->connect(new MssqlObj());
- ?>
1.什么是多态
多态(Polymorphism)按字面上意思理解就是“多种形状”。可以理解为多种表现形式,也即“一个对外接口,多个内部实现方法”。在面向对象的理论中,多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果。也即不同类的对象收到相同的消息时,将得到不同的结果。
在实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作一个父类来处理,并且可以屏蔽不同子类对象之间所存在的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
2. 多态的应用设计
在实际的应用开发中,通常为了使项目能够在以后的时间里的轻松实现扩展与升级,需要通过继承实现可复用模块进行轻松升级。在进行可复用模块设计时,就需要尽可能的减少使用流程控制语句。此时就可以采用多态实现该类设计。