面向对象三大特性(封装,继承,多态)之多态
2012-08-20 13:24
435 查看
在面向对象语言中,接口的多种不同的实现方式即为多态。
多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。
多态案例一:
多态案例二:
多态的实现可以通过继承父类,或是继承接口来实现。
继承父类时,要重载其中的方法。继承接口时,要根据具体的需要,改写抽象方法。
instanceof用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。
多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。
多态案例一:
class employee{//定义员工父类 protected function working(){//定义员工工作,需要在子类的实现 echo "本方法需要在子类中重载!"; } } class painter extends employee{//定义油漆工类 public function working(){//实现继承的工作方法 echo "油漆工正在刷漆!\n"; } } class typist extends employee{//定义打字员类 public function working(){ echo "打字员正在打字!\n"; } } class manager extends employee{//定义经理类 public function working(){ echo "经理正在开会!"; } } function printworking($obj){//定义处理方法 if($obj instanceof employee){//若是员工对象,则显示其工作状态 $obj->working(); }else{//否则显示错误信息 echo "Error: 对象错误!"; } } printworking(new painter());//显示油漆工的工作 printworking(new typist());//显示打字员的工作 printworking(new manager());//显示经理的工作
多态案例二:
<?php //定义一个形状的接口,里面有两个抽象方法让子类去实现 interface Shape{ function area(); function perimeter(); } //定义一个矩形子类实现形状接口中的周长和面积 class Rect implements Shape{ private $width; private $height; function __construct($width,$height){ $this->width = $width; $this->height = $height; } function area(){ return "矩形的面积为:".($this->width*$this->height); } function perimeter(){ return "矩形的周长为:".(2*($this->width+$this->height)); } } class Circular implements Shape{ private $radius; function __construct($radius) { $this->radius=$radius; } function area(){ return "圆形的面积是:".(3.14*$this->radius*$this->radius); } function perimeter(){ return "圆形的周长是:".(2*3.14*$this->radius); } } function printcontent($obj){ if($obj instanceof Shape){ echo $obj->area()."<br>"; echo $obj->perimeter()."<br>"; }else{ echo "Error:对象错误!"; } } printcontent(new Circular(4)); printcontent(new Rect(3,5)); ?>
多态的实现可以通过继承父类,或是继承接口来实现。
继承父类时,要重载其中的方法。继承接口时,要根据具体的需要,改写抽象方法。
instanceof用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。
相关文章推荐
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- 面向对象的三大特性(封装、继承、多态)-----继承
- Java — 面向对象的三大特性(封装、继承、多态)
- C# 面向对象三大特性:封装、继承、多态
- OC面向对象的三大特性:封装,继承,多态
- 黑马程序员——OC语言基础:面向对象三大特性,封装、继承、多态
- 面向对象三大特性(封装、继承、多态)
- 面向对象的三大特性:封装、继承、多态
- 黑马程序员——OC面向对象三大特性——封装,继承,多态。
- 黑马程序员---OC面向对象三大特性(封装、继承、多态)
- 面向对象三大特性:封装,继承,多态(二、多态)
- Java面向对象的三大特性——封装,继承,多态
- Java学习第六课--面向对象的三大特性(封装、继承和多态)
- 面向对象三大特性:封装,继承,多态(三、多态的进一步讲解)
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- C# 面向对象三大特性:封装、继承、多态
- python面向对象三大特性之继承、多态、封装
- 面向对象三大特性:封装,继承,多态(一,封装和继承)
- 黑马程序员_OC语言之面向对象的三大特性(封装、继承、多态)
- java语言基础(23)——面向对象三大特性(封装、继承、多态)