PHP继承和多态


继承 子类可以继承父类的一切
特点 单继承
class Ren
{
public $name;
public $sex;
public $yuyan;

function Say()
{
echo $this->name."正在说话";
}
}
//美国人的子类
class America extends Ren
{
public $ziben;
//重写:子类对父类的方法进行重写
function Say()
{
parent::Say();//调用父类里的方法,在输出自己的,这样就不会完全覆盖掉父类的方法
echo "hello";
}
}
//中国人子类
class China extends Ren
{
public $shehui;
public $wumai;
//重写
function Say()
{
echo "你好";
}
}
$a=new America();
$a->Say();
$c=new China();
$c->Say();
var_dump($a);
多态
条件:1, 必须要继承 2,子类要对父类的方法进行重写 3,父类引用指向子类实例
概念:当父类的引用指向子类的实例的时候,由于子类对父类的方法进行了重写,父类引用在调用相应的方法的时候表现出来的不同
//用c#举例
/*Ren r=new China();
r->Say();
Ren r=new America();//Ren可以去掉
r->Say();*/

<?php
class YunSuan
{
	private $a;
	private $b;
	
	function __construct($a,$b)
	{
		$this->a = $a;
		$this->b = $b;
	}
	
	function __set($n,$v)
	{
		if($v>0 && $v<100)
		{
			$this->$n = $v;
		}
	}
	
	function __get($n)
	{
		return $this->$n;
	}
	
	function He()
	{
		return $this->a + $this->b;
	}
	
	function cheng()
	{
		return $this->a * $this->b;
	}	
	
	function Shang()
	{
		return $this->a/$this->b;
	}
}

$r = new YunSuan(1,2);

  

原文地址:https://www.cnblogs.com/hamilton/p/5587813.html