//2.继承
//1.特点:单继承,一个子类只能有一个父类;一个父类可以有多个子类
//1,父类
//2.子类
//子类可以继承父类的一切
//重写:oerride
// 重载:overload 多态

/*class ren
{
     public $name;
      function say()
{
   echo $tjis->name."正在说话";
    }    
    }


/*1.class china
   {
       pulic $name;
       function say
       {
           
           }
       
       }*/
       /*class china extends ren//2.给父类做扩展:
       {
           //子类对父类的方法进行重写 定义相同的名进行更改
           function say()
           {
               parent::say();//把父类的内容调过来显示
               echo "你好";
               }
           function run()
           {               
               echo $this->name."正在跑步";
               }
           }*/

/*class America extends ren//3.
{
    function say()
    {
        echo "hello";
        }
    
    }*/


/*class china  extends ren//继承人类中的一切
{
    }
$c= new china;
$c->say();
$c=new America;
$c->say();
var_dump($c);*/

 




//overload  重载

//可以使类里面的某个方法产生多种效果,根据传入参数的不同可以执行不同的逻辑
//echo rand()随机数
//echo date()显示时间
//overload 重载 是多态的一种表现形式,叫编译多态

//3.多态
//概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同,成为多态;
//运行多态
//条件
//1.要有继承
//2.父类引用指向子类实例  
$r= new ren();
//3.要有重写
//4.调重写的方法

 

用.net语言做

//父类
 

/*  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 "这个人味道不错!";
        }

 

posted on 2016-12-12 15:07  甘冬冬  阅读(191)  评论(0编辑  收藏  举报