您好,欢迎访问一九零五行业门户网

PHP中类及其继承关系

类 讲继承,撇不开类,类一直是oop中一非常重要的概念,在这个过度oop的时代中,什么都得抽象成类,好像不抽象类就不会写代码了。所谓类,即一系列对象的总和,这系列对象有一样的属性和一样的方法。所谓方法,就是对象可以操作的行为:如可以吃、可以睡、可
类讲继承,撇不开类,类一直是oop中一非常重要的概念,在这个过度oop的时代中,什么都得抽象成类,好像不抽象类就不会写代码了。所谓类,即一系列对象的总和,这系列对象有一样的属性和一样的方法。所谓方法,就是对象可以操作的行为:如可以吃、可以睡、可以计算等等。
weight = 20;$a->eat();?>
这里表达的是一个简单的动物类,它有属性“体重”,有方法“吃”,“睡”。这些属性和方法,是类内部可见,还是类内部也可见。就有public和private关键字。 是外表上显而易见的,如手、脚、嘴、吃东西等,这些就是所谓public的;还有些外表上看不出来的,如心、肝、脾、心跳、消化等,这些就是所谓private和protected。至于,private和protected啥不一样,后面会讲。(modified 2014-5-1)
构造函数我们可以按以下操作来实例化一个对象
weight = 20;?>
但如果weight只可以内部访问或者想简化操作呢?那牛人又设计了构造函数__construct,这是一个特殊名字的方法。
weight = $weight; } public function eat() { echo it's eating!; } private function sleep(){ echo it's sleeping!; }}$a = new animal(20);?>
继承有了类以后,在类与类之间找关系,继承就是一个明显的关系。所谓继承,不是简单的生物学中的基因继承,也不是经济学中的财产继承。它只是表达了一个概念,你有的我也有,你没有的我也有。与其说是继承,不如说是扩展。包括php在内的许多语言,都选择关键字extends就是想很清楚地表达了这个概念它。派生关系可以用家族树来表达,确实就像继承。(modified 2014-5-1)

以上表达的就是人是继承了动物的方法“吃”,“睡”。但人不只“吃睡”,还会“思考”,所以还有智商“iq”。那有些属性、方法不想被类外部访问,又想被继承它的类访问怎么办,好吧,再搞个protected关键字好了。 好吧,既然是继承,那我们来研究一下达尔文的进化和退化论。派生类于基类,多了新的属性或新的方法,即是进步;少了在基类中声明为private的属性和方法,即为退化。(modified 2014-5-1)
好吧,继承并不复杂,以上的public, protected等,我随便写的,没逻辑的。
抽象类这节比较抽象,我们来讲故事吧!(modified 2014-5-1)
上帝在造万物时,想造生物,生物有生命会呼吸,然后好抽象,不懂造。(抽象基类,有抽象方法呼吸)
然后,上帝说,我们来造鸟,鸟是生物,有两只脚,有翅膀,会飞,用肺呼吸,羽毛什么颜色?长什么样子?好抽象,不会造。(派生抽象类)
上帝说,好吧,我们来造燕子,燕子是鸟,黑色毛,尾毛像剪刀。然后,捏完上色,好具体。(类)
然后,上帝用抽象到具体的方法,创造世界上最大的操作系统,hello world!

静态方法、属性从c/c++时代就想怎么去解释去解释这个静态两个字,这很计算机表达,因为他把变量和方法存在程序的静态区,所以叫静态变量和静态方法。我一直在想这东西在类中表达怎么跟现实中结合,让我们更好地去理解它然后更好地使用它。 ok。想想,有一个people类,关于人类有什么属性和什么操作跟一个人的生命没关系的?人类有多少人,生成身份id。
id = self::create_id(); // 内部调用静态属性/方法 } static $populace; // 静态属性,人口 static function() create_id { return microtime(); } // 静态方法,生成身份证}echo populace: . people::$populace; // 外部调用静态属性/方法?>
to be continue由于明天还有重要的事,今天只讲到这里,这里只是热身,精彩的内容在后面。
( 完 )
版权所有:老白经 转载请保留来源信息。 >
其它类似信息

推荐信息