zoukankan      html  css  js  c++  java
  • PHP面向对象

    1.static 关键字的使用

     1 <?php
     2 class Foo
     3 {
     4     public static $my_static = 'foo';
     5 
     6     public function staticValue() {
     7         return self::$my_static;
     8     }
     9 }
    10 
    11 class Bar extends Foo
    12 {
    13     public function fooStatic() {
    14         return parent::$my_static;
    15     }
    16 }
    17 
    18 print "通过类名访问 静态属性:" . Foo::$my_static . "<br />";
    19 
    20 $foo = new Foo();
    21 print "通过对象访问普通方法,调用静态属性:" . $foo->staticValue() . "<br />";
    22 print "通过对象直接访问 静态属性:" . $foo->my_static . "<br />";      // Undefined "Property" my_static 
    23 
    24 //print "通过对象已::的形式访问  静态属性:" . $foo::$my_static . "<br />";
    25 $classname = 'Foo';
    26 //print "通过变量类名访问 静态属性:" . $classname::$my_static . "<br />"; // PHP 5.3.0之后可以动态调用
    27 
    28 print "通过子类访问父类的静态属性:" . Bar::$my_static . "<br />";
    29 $bar = new Bar();
    30 print "通过子类实例访问普通方法,调用父类静态属性:" . $bar->fooStatic() . "<br />";

    输出结果:

    通过类名访问 静态属性:foo
    通过对象访问普通方法,调用静态属性:foo

    Notice: Undefined property: Foo::$my_static in E:\webroot\htdocs\dede\test\opp.php on line 22
    通过对象直接访问 静态属性:
    通过子类访问父类的静态属性:foo
    通过子类实例访问普通方法,调用父类静态属性:foo

    2.抽象类

       特点:

        1.抽象类不能被实例化,只能被继承。只是定义或部分实现子类需要的方法,而子类通过继承抽象类并实现其中的抽象方法,使抽象类具体化。

        2.通过abstract关键字定义抽象类和抽象方法,抽象方法只能以“;”结束,而不能有具体的函数体。

        3.所有的子类必须实现父类的所有抽象方法,除非在子类中也将此方法定义为抽象方法。

        4.子类中对父类抽象方法的实现需要重新声明,参数的个数也要和父类保持一致,并且访问控制不能严格与父类中的访问控制。

        5.抽象方法只能被包含在抽象类中,而不能再普通方法中包含抽象方法。

    3.接口

      特点:

        1.接口是纯粹的类模版,只定义功能而不包含方法的实现内容,可包含:属性和方法的声明。

        2.接口通过interface关键字修饰,任何实现了接口的类都必须实现接口中所定义的所有方法。

        3.一个类可以同时集成一个父类实现任意多个接口,如:class Consultancy extends Timedservice implements Bookable,Changeable{}

  • 相关阅读:
    2021年1月4号
    2021年1月3号
    2021年1月2日
    2021年1月1日
    Jenkins定时构建与轮询SCM
    2017-08-22校验
    2017-08-21xlVBASplitSheetsSameTime
    20170821xlVBA跨表公式套用
    20170821xlVBA隐藏空行
    20170814xlVBA限定日期按客户分类汇总
  • 原文地址:https://www.cnblogs.com/shary/p/2826537.html
Copyright © 2011-2022 走看看