1.PHP大小写问题

           对类名不敏感

           对变量敏感

2.对于常量

关键字define

常量名大写

3.类的成员

三种成员属性 public,protected,private

成员访问->不需要加$

关键字$this用来内部访问成员

构造方法__construct()

析构方法__distruct()     不带何参数     在代码最后执行

静态属性     关键字 static      访问方式: 类名::$属性名

::用于访问静态成员,常量,覆盖成员和方法

常量     关键字 const      访问: 类名::常量名



对象克隆

关键字      clone

$objectB=clone $bojectA

__clone()克隆函数,在克隆是得到的新的属性


------------------------------------


继承

关键字      extends

class 子类名 extens 父类名{

子类成员增添成员列表

function 方法1 {


}

function 方法2{


}

}

使用parent::在子类中调用父类的成员方法

parent::父类的成员方法()


---------------------------------------


instanceof  判断对象是否属于某个类

    $obj instanceof class名 (注意class后面不需要加())  

    是 返回值1;否返回空。


---------------------------------------


覆盖

    具有相同的方法名,参数列表,返回值


---------------------------------------


抽象类和接口

    1.定义抽象类

      语法格式:

         abstract class 抽象方法名{

              抽象类的成员类表;

              abstract function 成员方法1(参数..)

              abstract function 成员方法2(参数..)

         }

         注意方法没有{}

    2.实现

         class 子类名 extends 抽象类名{

              子类成员列表

         }


    1.定义接口

         语法格式:

              interface 接口名{

                   类常量列表

                   function 成员方法1(参数);

                   fucntion 成员方法2(参数);

              }

    2.实现

         语法格式

              class 类名 implements 接口名{

                   类成员

              }

         注意使用接口方法时参数一定要对应


    抽象类和接口的区别

         (1)关键字

                   定义          抽象类      abstract           带class

                             接     口     interface          不需要带class

                   实现          抽象类     extends

                             接口          implements

         (2) 接口没有数据成员,抽象类有数据成员,抽象类可以实现数据封装

         (3) 接口没有构造函数,抽象类可以有构造函数

         (4) 接口中的方法都是public,抽象类中的方法用public,protected,private

         (5) 一个类可以实现多个接口,一个类只能实现一个抽象类

         (6)在接口中不可以有成员方法的实现代码,在抽象类中可以有

    在实际应用中如果给某个类添加更多的行为,可以定义一个接口,对数据,行为进行重用定义一个抽象类

    封装变量和函数


-------------------------------------------------


多态

    通过多种状态或阶段描述相同对象的编程方式。

    (1)通过继承实现多态

    (2)通过接口实现多态




遇到的问题:

    1.继承方法参数问题;

    2.抽象类方法{}问题

         两种写法:

              使用abstract修饰     abstract protected function GetPay();

              没用abstract修饰     protected function GetPay(){}



总结:

clone      用来克隆一个对象  克隆是调用类中__clone()方法

继承

         语法

              class 子类名 extends 父类名

         parent::               在子类中调用父类的方法和属性

         instanceof               判断对象实例是否属于某个类          $obj instanceof 类名  多态的时候用到

         覆盖父类的方法          注意覆盖的时候需要相同的方法名,方法参数,和返回值类型

         构造函数可以任意覆盖

抽象类

         语法格式:

                   abstract class 抽象方法名{

                        抽象类的成员类表;

                        abstract function 成员方法1(参数..);

                        abstract function 成员方法2(参数..);

                        protected function 成员方法3(参数){}

                   }

                   此处两种形式需要特别注意{}和;

         实现语法

                   class 子类名 extends 抽象类名{

                        抽象方法的实现

                   }

         可以有构造函数

接口

         定义接口

              interface 接口名{

                   空方法

              }

              注意:没有class,接口中不能有属性

         实现语法

              class 类名 implements 接口名{}

多态

         多态通过子类继承同一个父类或者接口来实现

         通过多种状态或阶段描述相同对象的编程方式。

         通过继承实现多态