美文网首页
PHP自学计划-面向对象-18

PHP自学计划-面向对象-18

作者: 你缺少想象力 | 来源:发表于2018-12-07 11:39 被阅读8次

    PHP的面向对象,几乎和Java一模一样,甚至就是一样的
    例子:

    // 1.接口
    interface Human
    {
        public function breath();
    }
    
    // 2.抽象
    abstract class Chinese
    {
        abstract function getLocation();
    }
    
    abstract class Shanghai extends Chinese
    {
        abstract function speak();
    }
    
    class Father extends Shanghai implements Human
    {
    
        // 3.声明属性的格式:var 属性名
        var $name = 1;
    
        // 4.构造方法
        function __construct($name)
        {
            $this->name = $name;
        }
    
        function eat()
        {
            echo "I can eat food" . "<br>";
        }
    
        // 5.接口方法
        public function breath()
        {
            echo "大口呼吸" . "<br>";
        }
    
        function getLocation()
        {
            echo "上海浦东" . "<br>";
        }
    
        function speak()
        {
            echo "上海话" . "<br>";
        }
    }
    
    // 6.final修饰的类无法再被继承
    final class Son extends Father
    {
        // 7.常量
        const gender = '男';
    
        // 8.静态变量
        public static $school = "阳光幼儿园" . "<br>";
    
        // 9.重写父类方法
        public function eat()
        {
            // 10.类似Java中的super.eat();
            parent::eat();
            // 11.使用这种方式控制父类的属性
            $this->name = 2;
            echo "more eat" . "<br>";
        }
    
        public function play($people)
        {
            // 12.内部调用私有方法
            $this->dress();
            echo "play game with " . $people . "<br>";
        }
    
        private function dress()
        {
            echo "dress" . "<br>";
        }
    
        // 13.析构函数:实例被销毁的时候调用
        function __destruct()
        {
            print "销毁 " . "<br>";
        }
    
    }
    
    // 14.实例对象
    $son = new Son("李四");
    
    // 15.调用方法
    $son->eat();
    $son->play("张三");
    $son->breath();
    
    // 16.直接访问静态变量
    echo Son::$school;
    

    运行结果:

    I can eat food
    more eat
    dress
    play game with 张三
    大口呼吸
    阳光幼儿园
    销毁 
    

    要注意一点的是:
    PHP的类有构造方法和析构方法
    构造方法,对象在实例化的时候调用,析构方法对象被销毁的时候调用

    即便是在访问静态属性,对象也没有被销毁,直到访问静态属性结束后,类才被销毁

    相关文章

      网友评论

          本文标题:PHP自学计划-面向对象-18

          本文链接:https://www.haomeiwen.com/subject/wzfthqtx.html