zoukankan      html  css  js  c++  java
  • 面向对象的三大特性(重点!!!!)

     面向对象分三种特性:

    1封装

    2继承

    3多态

    封装的第一个步骤:将成员变量变成private

    第二个步骤:在类里面做一个成员方法,间接访问

    第三个步骤:在该方法中加限制条件

    第一种写法:

    class Ren{                          //定义名称
        public $name;                   //姓名
        public $sex;                           //性别
        public $birthday;                    //生日
        private $age;                        //年龄   私有的
        public function setage($age){         //把年龄定义       
            if($age>=18 && $age<=50){
                $this->age = $age;
            }
        }
    }
    $r = new Ren;
    $r->name = "张三";
    $r->setage(20);
    var_dump($r);

     方法二:魔术方法

    复制代码
    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.方法不同。

        多态分为运行多态和编译多态:

          运行多态需要用到强类型语言;

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

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

  • 相关阅读:
    【荐2】Total Commander 7.57 配置选项 个性化设置备份,,,开启时如何自动最大化???(二)
    【荐1】Total Commander 7.57 个人使用设置 及 常用快捷键 备忘
    Total Commander 集成、调用 Beyond Compare比较文件
    Linux/CentOS下开启MySQL远程连接,远程管理数据库
    如何查看、修改Linux的系统时间
    Linux cp (复制)命令简介
    Linux网络下载命令 wget 简介
    Linux如何下解压windows下的.zip和.rar文件
    Linux tar (打包.压缩.解压缩)命令说明 | tar如何解压文件到指定的目录?
    解决宿主机不能访问虚拟机CentOS中的站点 | 更新CentOS防火墙设置开启80端口访问
  • 原文地址:https://www.cnblogs.com/palpitate/p/8243380.html
Copyright © 2011-2022 走看看