zoukankan      html  css  js  c++  java
  • 继承多态

    <?php

    //1.封装
    //目的:为了使类更加安全
    //做法:
    //1.将成员变量变为私有的
    //2.在类里面做一个方法来间接的访问成员变量
    //3.在该方法里面加控制

    //2.继承
    //1.父类
    //2.子类
    //子类可以继承父类的一切
    //重写:override
    //特点:单继承,一个子类只能有一个父类,一个父类可以派生多个子类


    /*class Ren
    {
    public $name;

    function Say()
    {
    echo $this->name."正在讲话";
    }
    }

    class China extends Ren
    {
    //子类对父类的方法进行重写
    function Say()
    {
    parent::Say();
    echo "你好";
    }

    function Run()
    {
    echo $this->name."正在跑步";
    }
    }

    class America extends Ren
    {
    //子类对父类的方法进行重写
    function Say()
    {
    echo "hello";
    }
    }*/

    /*$c = new China();
    $c->Say();
    $a = new America();
    $a->Say();
    var_dump($c);
    */


    //overload 重载
    //可以使类里面的某个方法产生多种效果,根据传入的参数不同,可以执行不同的逻辑
    //也是多态的一种,编译多态
    /* class Test
    {
    public string show()
    {
    return "0参";
    }
    public string show(string s)
    {
    return "1参";
    }
    public string show(string s,string a)
    {
    return "2参";
    }
    }

    Test t = new Test();

    t.show("a","b");
    */


    //3.多态
    //当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同,称为多态
    //运行多态

    //条件
    //1.要有继承
    //2.父类引用指向子类实例
    //3.要有重写
    //4.调重写的方法

    //父类
    /* class Ren
    {
    public virtual string Say()
    {
    return "说话";
    }
    }

    //子类
    class China : Ren
    {
    public override string Say()
    {
    return "你好";
    }
    }
    //子类
    class America : Ren
    {
    public override string Say()
    {
    return "hello";
    }
    }

    //父类引用r指向子类实例
    Ren r = new America();
    MessageBox.Show(r.Say());

    r = new China();
    MessageBox.Show(r.Say());


    //子类的对象可以代替父类的对象
    America a = new America();
    MessageBox.Show(Eat(a));
    //怪兽吃人,需要一个人的参数
    public string Eat(Ren r)
    {
    return "这个人味道不错!";
    }
    */

    ?>

  • 相关阅读:
    ubuntu 16.04下源码安装opencv3.4
    机器学习库--dlib
    ubuntu查看内存占用和查看cpu使用情况的简单方法(ubuntu内存管理)
    语音开放平台简介
    语音开源代码简介
    语音开源代码与平台对比
    source insight 添加 python 支持
    Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded
    人脸检测----Adaboost学习方法
    人脸检测---特征的提取
  • 原文地址:https://www.cnblogs.com/l123789/p/6170046.html
Copyright © 2011-2022 走看看