Loading

抽象和接口(20161025)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<?php

//继承
//子类可以继承父类的一切
//特点:单继承
//函数的重写

//多态
//当父类引用指向子类实例,由于子类对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同
//如果一个方法需要一个父类的参数,可以给一个子类对象

//静态
//普通成员
//普通成员是属于对象的

//静态成员
//静态成员属于类的

//关键字:static
//self关键字:在类里面代表该类
//this关键字:在类里面代表该对象
//在静态方法里面不能调用普通成员
//在普通方法里面能够调用静态成员

/*class FenBi
{
    public $length; //粉笔的长度
    public static $color; //粉笔的颜色
    
    static function show()
    {
        echo "粉笔颜色是:".self::$color;//静态类里面使用静态成员
    }
    
    function XianShi()
    {
        echo "显示:".self::$color;
    }
}

$f = new FenBi(); //先造一个对象
$f->length; //用对象去调用普通成员

FenBi::$color = "红色"; //使用类名调用静态成员
FenBi::show();
$f->XianShi();*/

//抽象
//抽象类:关键字abstract
//特点:不能被实例化,只能被继承
//目的:为了派生子类,控制子类

/*abstract class Dog
{
    public $name;
    
    function Jiao()
    {
        echo "汪汪";
    }
}

class JinMao extends Dog
{
    
}*/

//$d = new Dog();

//接口    
//极度抽象的类
//接口里面不能包含成员变量,只能包含成员方法
//成员方法可以没有函数体
//接口关键字:interface
//实现接口的类,必须实现接口里面的所有方法

interface IUSB        //IUSB    USB的规则        I开头 表示规则
{
    function read(); //读的方法
    function write(); //写的方法
}

//鼠标的驱动类        两个类都要实现
class Mouse implements IUSB
{
    function read()
    {
        echo "鼠标点击了";
    }
    function write()
    {
        echo "给鼠标一个指令";
    }
}

//键盘的驱动类
class JianPan implements IUSB
{
    function read()
    {
        echo "键盘输入了内容";
    }
    function write()
    {
        echo "给键盘指令";
    }
}

$m = new Mouse();
$m->write();

$j = new JianPan();
$j->read();



//接口:API

//互联网数据公司提供的数据接口

//比如淘宝的接口提供商品的价格








?>

</body>
</html>

 

posted @ 2016-11-30 19:41  5572  阅读(115)  评论(0编辑  收藏  举报