zoukankan      html  css  js  c++  java
  • 面向对象三大特性

      面向对象三大特性:

        1.封装;  2.继承; 3.多态

      封装:

        目的:为了让类更加安全。

        步骤:

          1.将成员变量变为private,不能从外界访问;

          2.在类里面做一个成员方法来间接访问;

          3.在该方法里面加限制条件。

      方法一:

    class Ren{
        public $name;
        public $sex;
        public $birthday;
        private $age;
        public function setage($age){
            if($age>=18 && $age<=50){
                $this->age = $age;
            }
        }
        public function getage(){
            return $this->age;
        }
    }
    $r = new Ren();
    $r->name = "张三";
    $r->setage = 20;

      方法二:魔术方法

    class Ren{
        public $name;
        public $sex;
        public $birthday;
        private $age;
            public function __set($name,$value){
            if($name=="age"){
                if($value>=18 && $value<=50){
                    $this->$name = $value;
                }
            }else{
                $this->$name = $value;
            }
        }    
        public function __get($name){
            return $this->$name;
        }
    }
    $r = new Ren();
    $r->name = "张三";
    $r->age = 20;   //自动调用魔术方法__set
    echo $r->age;   //自动调用魔术方法__get
    var_dump($r);

        其中__set($name,$value)中第一个值为变量名,第二个为变量值。

      继承:

        概念:子类可以继承父类的一切,且可扩展自己的内容(父类不需要太具体)。

        特点:单继承,即一个子类只能有一个父类,同一个父类可以有多个子类。

      制作一个父类:

    class Ren{
        public $name;
        public $sex;
        public function say(){
            echo "人在讲话";
        }
    }

      制作子类:

    class China extends Ren{
        public $yuyan;
        public function say(){
            //调用父类里面的方法
            parent::say();
            echo "你好";
        }
    }
    $c = new China();
    $c->say();

        子类:

          1.可扩展自己的内容;

          2.可以对父类的方法进行重写,即函数重写(override)

          重写(override)对比重载(overload):

            (1)重写即子类对父类的方法进行重写;

            (2)重载发生于强类型语言中,让一个方法实现多个功能;

              重载条件:①同名方法;  ②参数不同;  ③参数相同,类型不同。

      多态:

        概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候所表现出的不同,我们称为多态。

        条件:

          1.必须有集成存在;

          2.有重写存在;

          3.方法不同。

        多态一般出现在强类型语言中,分为运行多态和编译多态:

          运行多态指代码运行中出现的多态

          编译多态指的就是重载,重载在编译过程中会出现的不同。

        多态常发生在强类型语言中:同一类型,指向不同输出也不同,父类的引用完全可以指向子类的实例。

  • 相关阅读:
    常见26个jquery使用技巧详解(比如禁止右键点击、隐藏文本框文字等)
    禁用页面及页面所有frame内的右键菜单
    JS模态窗口返回值兼容问题解决方案
    winform登录时,在密码框按下回车,直接登陆
    C#中实现邮件发送功能
    CTFHub-彩蛋(持续更新~)
    CTFHub技能树-目录遍历
    免密钥方式登陆配置
    Ansible_Day1
    Python_Day2_共享你的代码
  • 原文地址:https://www.cnblogs.com/maoqiaoyu123/p/8250603.html
Copyright © 2011-2022 走看看