当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 第十节--抽象方法和抽象类面向对象程序通过类的分层结构构建起来.
 

 

    摘要:第十三节--对象串行化串行化可以把变量包括对象,转化成连续bytes数据. 你可以将串行化后的变量存在一个文件里或在网络上传输. 然后再反串行化还原为原来的数据. 你在反串行化类的对象之前定义的类,php可以成功地存储其对象的属性和方法. 有时你可能需要一个对象在反串行化后立即执行. 为了这样的目的,php会自动寻找__sleep和__wakeup方法.当一个对象被串行化,php会调用__sleep方法(如果存在的话). 在反串行化一个对象后,php 会调......
    摘要:4) ★ class type hints  类型指示 大家都知道,php是一种弱类型的语言。在使用变量前不需要定义,不需要声明变量的数据类型。这在编程中带来很多便利,但也带了一些隐患,特别当变量的类型变化时。在php5增加了类型指示,可以在执行过程中自动对类方法的参数类型进行判断。这类似于java2中的rtti,配合reflection可以让我们很好地控制对象。 <?php interface foo { function a......


PHP5的对象模型[10]--抽象方法和抽象类
第十节--抽象方法与抽象类

【相关文章:TreeView控件的双击事件

【扩展阅读:C# Code Review Check

面向对象程序通过类的分层结构构建起来. 在单重继承语言如php中, 类的继承是树状的. 一个根类有一个或更多的子类,再从每个子类继承出一个或更多下一级子类. 当然,可能存在多个根类,用来实现不同的功能. 在一个良好设计的体系中,每个根类都应该有一个有用的接口, 可以被应用代码所使用. 如果我们的应用代码被设计成与根类一起工作,那么它也可以与任何一个从根类继承出来的子类合作. 【扩展信息:提高Sql Server性能的10个技巧

抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码. 如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类. 你不能实例化抽象类. 你必须继承它们,然后实例化子类. 你也可以把抽象类看成是子类的一个模板.

如果你覆写所有的抽象方法, 子类就变成一个普通的类. 如果没有覆写所有方法, 子类仍是抽象的. 如果一个类中中包含有抽象方法(哪怕只有一个), 你必须声明这个类是抽象的, 在class关键字前加上abstract.

声明抽象方法的语法与声明一般方法不同. 抽象方法的没有像一般方法那样包含在大括号{}中的主体部份,并用分号;来结束.

在例子6.13中, 我们定义了一个含有getarea方法的类shape. 但由于不知道形状不可能确定图形的面积,确良我们声明了getarea方法为抽象方法. 你不能实例化一个shape对象,但你可以继承它或在一个表达式中使用它, 就像例6.13中那样.

如果你建立了一个只有抽象方法的类,你就定义了一个接口(interface). 为了说明这种情况, php中有interface 与implements关键字. 你可以用interface来代替抽象类, 用implements来代替extends来说明你的类定义或使用一个接口. 例如, 你可以写一个myclass implements myiterface. 这两种方法可以依个人偏爱来选择.

/*注:

两种方法即指:

1. abstract class aaa{} (注意aaa中只有抽象方法,没有一般方法)

class bbb extends aaa{} (在bbb中覆写aaa中的抽象方法)

2. interface aaa{}

class bbb implements aaa{} (在bbb中覆写aaa中的抽象方法)

*/


...   下一页
 ·痛在我心    »显示摘要«
    摘要: 很心痛,不是为某个人,是为我自己. 希望失败跟我不要挂上关系,但它如影随行.自信是我唯一的支撑,失败太多也就渐渐消散了,所以其实我没有自信,因为真正的自信是长久的,我的自信可能只是自卑的一个挡箭牌,也是我假以生存的唯一支柱,没了自信,我还有什么呢?但我确实没有! 并非不够聪明,并非长得太难看,并非能力不够...只是心里有一种刺骨的痛,因为太孤独,因为孤独的太久,因为我看不到什么时候是终结.没有太多朋友,并非不够诚心,也并非别人不诚心,只是我没有......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE