美文网首页
PHP面向对象(OOP)

PHP面向对象(OOP)

作者: winjin | 来源:发表于2018-03-04 19:00 被阅读0次


    class Test {

        public $attr;    // 可以被外部访问,可以被继承;

        protected $attr;    // 不可以被外部访问,可以被继承;

        private $attr;    // 不可以被外部访问,不可以被继承;

        public function __construct($params){

             // 创建一个对象时,会自动调用构造函数,完成一些初始化工作

             $this->$attr = $params;       

        }

        public fucntion foo1() {

              echo 'I'm function foo1 in classTest';

        }

        protected fucntion foo2() {

              echo 'I'm function foo2 in classTest';

        }

        private fucntion foo3() {

              echo 'I'm function foo3 in classTest';

        }

        // 最终类:禁止被继承,只能被实例化;

        final fucntion foo4() {

              echo 'I'm function foo4 in classTest';

        }

    }

    // 类的实例化:

    $obj = new Test('tt');    // new 一个对象

    echo $obj->$attr;    // 调用类的属性

    $obj->foo1();    // 调用类的方法

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

    刚提到最终方法,还有最终类;其实还有抽象方法和抽象类;

    抽象类:有抽象方法的类就是抽象类,抽象方法没有方法体,需要被重写;所以抽象类必须被继承;抽象类中还可以有一般方法;

    拥有的成员属性全部为抽象或常量的、有且只有抽象方法的类叫做“接口”,使用关键词interface来定义接口;使用关键词implements来实现,并且必须全部方法都实现。

    抽象类只能单继承,当一个子类需要实现的功能需要继承自多个父类时,就必须使用接口。

    PHP的类有三大特性:封装、继承、多态;

    封装性:让类更安全,体现在访问控制符的使用;

    继承性:子类继承父类的一切(属性、方法),在子类中对父类的方法进行重写;

    override——方法重写;    overload——重载,编辑多态

    多态性:由于子类里面对父类的方法进行了重写,父类引用在调用方法的时候表现出的不同状态。

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

    static:静态的;带有static的属性是属于类自己独有的属性,其他的是对象可以有的属性。

    相关文章

      网友评论

          本文标题:PHP面向对象(OOP)

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