类的继承和重载

原创 2018-12-26 21:30:18 465
摘要:类的继承的目的是代码服用,类的继承最少有两个类,一个为父类,一个为子类。子类自动获取父类中的所有属性和方法,除了private私有的。子类中允许重写父类中的同名方法(多态)。当访问类中的静态属性和方法和常量时使用范围解析符::,在类中使用主体为self,parent,static,其中的static有后期静态绑定的作用,子类覆写父类的属性和方法时调用父类的方法能保证使用的是子类的属性和方法。重载是

类的继承的目的是代码服用,类的继承最少有两个类,一个为父类,一个为子类。子类自动获取父类中的所有属性和方法,除了private私有的。子类中允许重写父类中的同名方法(多态)。

当访问类中的静态属性和方法和常量时使用范围解析符::,在类中使用主体为self,parent,static,其中的static有后期静态绑定的作用,子类覆写父类的属性和方法时调用父类的方法能保证使用的是子类的属性和方法。

重载是动态的创建属性和方法,分为属性重载和方法重载。其中的方法重载多用在跨类的方法调用上。

<?php

class Book

{

    public $name = '《mysql从删库到跑路》';//声明普通动态成员属性

    protected static $author = 'peter zhu';//声明静态成员属性

    const PRICE = 99;//类常量不需要设置访问限制,本身就属于类

    public function getInfo1()//动态方法即可访问动态成员,也可访问静态成员,但最好不要访问静态成员

    {

       return $this->name;

       //return self::author.self::PRICE;

    }

    public static function getInfo2()

    {

        //return $this->name;//普通动态成员不能被静态方法访问

        return self::$author.self::PRICE;

    }

}

class Study extends Book//子类study继承父类book

{

    public static function getInfo3()

    {

        //return Book::$author;

        return parent::$author;//最好用当前父类的引用标识符,不然父类名字一换,这里也要跟着换很麻烦

        //return static::$author;

    }

}

$book = new Book();

echo $book->getInfo1();//访问动态方法用->

echo Book::getInfo2();//静态方法是直接属于类的,所以调用的时候是类直接调用的

echo'<hr>';

$study = new Study();

echo $study::getInfo3();//访问静态方法用::


批改老师:天蓬老师批改时间:2018-12-27 09:22:50
老师总结:类属性的重载, 可以实现许多的功能, 为用户的操作提供了一定的容错性

发布手记

热门词条