美文网首页
从php分析oop思想

从php分析oop思想

作者: ljh_10e3 | 来源:发表于2018-10-11 11:14 被阅读0次

oop: object oriented programming .面向对象编程

把组件的实现和接口分开,并且让组件具有多态性。

oop三大特性   封装  继承  多态

  封装

        a)将属性和方法封装到一起,形成对象,

        b)隐藏内部的实现细节,对外提供可操作的接口(public的方法)

继承,子类可以通过继承,直接使用父类定义好的属性和方法(非私有的),extends,代码可重用

多态,在不同的上下文中(语境),其表现形态不一样。php体现的十分模糊。原因是php是弱类型语言。

java的多态体现的十分清晰,大体分两类:父类引用指向子类对象;接口引用指向实现接口的类对象。java声明变量时都要给变量设定类型,所以存在什么父类引用和接口引用。而php则没有这点体现,php声明变量不需要给变量设定类型,一个变量可以指向不同的数据类型。所以,php不具有像java一样的多态。

php不具有像java那种清晰的多态,不是代表php不具有多态性。看下面一个例子:

code:

abstract class animal{

    abstract function fun();

}

class cat extends animal{

    function fun(){

        echo "cat say miaomiao...";

    }

}

class dog extends animal{

    function fun(){

        echo "dog say wangwang...";

    }

}

function work($obj){

    if($obj instanceof animal){

        $obj -> fun();

    }else{

        echo "no function";

    }

}

work(new dog());

work(new cat());

输出:

string(48) 

dog say wangwang...

cat say miaomiao...

上面通过一个关键字instanceof来判断,变量指向的对象是否是animal类的一个实例,下面new cat(),new dog()都是animal子类的对象,而输出了“dog say wangwang...”和“cat say miaomiao...”,说明子类对象是父类的一个实例,从而达到了java多态的功能。

上边的类是抽象类,也表明了接口与实现接口的类对象同样可以适用。

至此,得出php虽然多态体现模糊,但还是具有多态特性的。

OOP的好处:

    可重用

    可维护

    可扩展

    灵活性比较高

相关文章

  • 从php分析oop思想

    oop: object oriented programming .面向对象编程 把组件的实现和接口分开,并且让组...

  • 九月上--编程思想

    编程思想 1.oop思想 OOP:ObjectOrientedProgramming,面向对象编程(程序设计...

  • PHP Traits

    (http://php.net/manual/en/language.oop5.traits.php#langua...

  • 魔术方法

    官方文档:http://php.net/manual/zh/language.oop5.magic.php __c...

  • PHP OOP小结

    PHP面向对象 继承 设计一个MySQL数据库操作类 抽象类,抽象方法 接口 interface 类的自动加载

  • OOP PHP 要点

    关于MVC模型:MVC模型有两种模式,一种是所有Model与View层之间的操作都需要通过control 层调度。...

  • PHP OOP编程从入门到不会

    PHP object-oriented programming OOP中的一些基本概念 OOP基本概念代码实例 O...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • 面向对象编程(OOP)

    面向对象编程 Object-Oriented Programming(OOP) OOA OOD OOP分析 设计 ...

  • js珠峰高级003

    ###POP : C ###OOP: JAVA PHP C# .net JS Python Ruby Go ###...

网友评论

      本文标题:从php分析oop思想

      本文链接:https://www.haomeiwen.com/subject/ustbaftx.html