1 //面对对象三大特性
  2 //封装
  3 //目的:让类更安全
  4 //做法:成员变量变为私有的,通过方法来间接操作成员变量,在方法里面加限制条件
  5 
  6 //继承
  7 //概念:子类可以继承父类的一切
  8 //方法重写:在子类里面对父类的方法进行重写
  9 //特点:单继承:一个子类只能有一个父类,一个父类可以派生出多个子类
 10 //override:重写
 11 //overload:重载,编译多态
 12 class Ren
 13 {
 14     public $name;
 15     function say()
 16     {
 17         echo $this->name."正在讲话!";
 18     }
 19 }
 20 
 21 class China extends Ren
 22 {
 23     public $dizhi;
 24     
 25     function say()
 26     {
 27         parent::say(); //调用父类的say方法
 28         
 29         echo "中国人说话";
 30     }
 31 }
 32 class America extends Ren
 33 {
 34     function say()
 35     {
 36         echo "speak";
 37     }
 38 }
 39 
 40 //$c = new China();
 41 //$c->say();
 42 
 43 //$a = new America();
 44 //$a->say();
 45 
 46 
 47 //多态(运行多态)
 48 //概念:当父类引用指向子类实例,由于子类里面对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同状态。
 49 //条件:1.必须发生在继承下
 50 //2.必须重写父类方法
 51 //3.父类引用调用该方法
 52 
 53 //如果一个方法需要一个父类参数,可以给一个子类对象
 54 
 55 
 56 
 57 //静态
 58 //普通成员
 59 //普通成员是属于对象的
 60 
 61 //静态成员
 62 //静态成员属于类的
 63 
 64 //关键字:static
 65 //self关键字:在类里面代表该类
 66 //在静态方法里面不能调用普通成员
 67 //在普通方法里面能够调用静态成员
 68 
 69 /*class FenBi
 70 {
 71     public $length; //粉笔的长度
 72     public static $color; //粉笔的颜色
 73     
 74     static function show()
 75     {
 76         echo "粉笔颜色是:".self::$color;
 77     }
 78     
 79     function XianShi()
 80     {
 81         echo "显示:".self::$color;
 82     }
 83 }
 84 
 85 $f = new FenBi(); //先造一个对象
 86 $f->length; //用对象去调用普通成员
 87 
 88 FenBi::$color = "红色"; //使用类名调用静态成员
 89 FenBi::show();
 90 $f->XianShi();*/
 91 
 92 //抽象
 93 //抽象类:关键字abstract
 94 //特点:不能被实例化,只能被继承
 95 //目的:为了派生子类,控制子类
 96 
 97 /*abstract class Dog
 98 {
 99     public $name;
100     
101     function Jiao()
102     {
103         echo "汪汪";
104     }
105 }
106 
107 class JinMao extends Dog
108 {
109     
110 }*/
111 
112 //$d = new Dog();
113 
114 //接口
115 //极度抽象的类
116 //接口里面不能包含成员变量,只能包含成员方法
117 //成员方法可以没有函数体
118 //接口关键字:interface
119 //实现接口的类,必须实现接口里面的所有方法
120 
121 interface IUSB
122 {
123     function read(); //读的方法
124     function write(); //写的方法
125 }
126 
127 //鼠标的驱动类
128 class Mouse implements IUSB
129 {
130     function read()
131     {
132         echo "鼠标点击了";
133     }
134     function write()
135     {
136         echo "给鼠标一个指令";
137     }
138 }
139 
140 //键盘的驱动类
141 class JianPan implements IUSB
142 {
143     function read()
144     {
145         echo "键盘输入了内容";
146     }
147     function write()
148     {
149         echo "给键盘指令";
150     }
151 }
152 
153 $m = new Mouse();
154 $m->write();
155 
156 $j = new JianPan();
157 $j->read();
158 
159 
160 
161 //接口:API

 

posted on 2016-10-25 15:01  小学员G  阅读(181)  评论(0编辑  收藏  举报