码迷,mamicode.com
首页 > 其他好文 > 详细

十二、三大核心特征-多态

时间:2018-02-16 22:53:50      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:rac   span   bst   就会   实现   不同   抽象   echo   针对   

多态指的是面向对象编程时,屏蔽了子类对象之间的差异,可以使调用对象方法的客户端代码中代码保持通用性,而不必针对每个不同的对象写不同的实现。

多态的实现依靠的是继承、抽象方法或接口的特性。

例如:

//父类是一个抽象类Animal
abstract class Animal 
{
    abstract public function talk();
}

//子类Dog
class Dog extends Animal
{
    public function talk()
    {
        echo ‘新年旺旺‘;
    }
}

//子类Cat
class Cat extends Animal
{
    public function talk()
    {
        echo ‘喵喵‘;
    }
}

//客户端类Person
class Person
{    
    public function __construct()
    {
        $cat = new Cat();
        $dog = new Dog();
        $this->touchHead($cat);//输出:喵喵
        $this->touchHead($dog);//输出:新年旺旺
    }
    //摸动物的头,动物就会叫
    privatefunction touchHead(Animal $animal)
   {
        $animal->talk();
   }
}

在touchHead方法中,我们无需知道具体的是哪个对象,只要这个对象是派生于动物父类,就可以调用talk方法。这种特性就是多态。

十二、三大核心特征-多态

标签:rac   span   bst   就会   实现   不同   抽象   echo   针对   

原文地址:https://www.cnblogs.com/mysic/p/8451232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!