类的三大特性——多态

<?php
class Ren
{
    public $name;
    public $sex;
    function Say()
    {
        echo "hello";}
    function Say($a)
    {
        echo $a."hello";
    }
    function Say($a,$b)
    {
        echo $a.$b."hello";
    }
    function __tostring()

    {
        return "这个对象包含变量name和sex,一个say()方法";
    }

    function __clone()  //对象克隆的时候自动执行
    {
        $this->name="李四";  //$this在这里是代表的是克隆之后的对象
    }

}
class China extends Ren
{
    function Say()
    {
        echo "你好";}
}
$r=new Ren();//$r代表Ren类的引用
$r1=new China();//$r1代表China的引用
echo $r;

//多态
//概念:当父类引用指向子类实例的时候,有子类对父类函数进行了重写,导致我们在使用该引用去调用相应的方法的时候表现出的不同
//发生条件:1.必须有继承
//子类必须要对父类的方法进行重写

//函数重载(强类型语言才会有)
//函数重载条件:1.函数名必须相同;
//2.函数里边参数的个数不同
//3.如果个数相同,类型不同
//方法名必须一样,方法名一样的的情况下参数的个数不同,参数的个数相同的情况下,参数的类型不一样

//php是弱类型语言,所以没有重载
//php有可变参数的函数

//__tostring()方法

//对象的克隆
$r=new Ren();
$r->name="张三";

$r1=clone $r;//克隆对象用的,相当于复制,这一步等同于 $r1=new Ren();$r1->name="张三";
var_dump($r1);
echo $r->name;
echo $r1->name;//如果没有clone()方法,此刻$r和$r1的name都是张三;
function __clone()  //对象克隆的时候自动执行
    {
        $this->name="李四";  //$this在这里是代表的是克隆之后的对象
    }如果在类/父类中加了function __clone()方法,那么$r1->name就是李四了,这里需要注意的是$this在这里是指克隆以后的对象

?>
时间: 2024-10-09 23:50:12

类的三大特性——多态的相关文章

OC学习篇之---类的三大特性(封装,继承,多态)

之前的一片文章介绍了OC中类的初始化方法和点语法的使用:http://blog.csdn.net/jiangwei0910410003/article/details/41683873,今天来继续学习OC中的类的三大特性,我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一.封装 学习过Java中类的同学可能都知道了,封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java

转 OC温故:类的三大特性(封装,继承,多态)

原文标题:OC学习篇之---类的三大特性(封装,继承,多态) 我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一.封装 封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java中有四种访问权限修饰符: 1 public,default,protected,private 访问权限依次递减,这样我们在定义类的时候,哪些字段和方法不想暴露出去,哪些字段和方法可以暴露,可以通过

(转载)OC学习篇之---类的三大特性:封装,继承,多态

之前的一片文章介绍了OC中类的初始化方法和点语法的使用,今天来继续学习OC中的类的三大特性,我们在学习Java的时候都知道,类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一.封装 学习过Java中类的同学可能都知道了,封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限的控制功能,Java中有四种访问权限修饰符:public,default,protected,private,访问权限一次递减的,这样我们在定义类的时

2015.12.22 类的三大特性 协议的简单介绍

类的三大特性:封装.继承.多态 封装: 1. 对于头文件里面的一些成员变量,可以使用@private @public @protected来限制权限 @public  公有的 类本身可以访问,子类可以继承,外部也可以访问 pxd->name @private 私有的 类本身可以访问,子类无法继承,外部不可以访问 @protected 受保护的 类本身可以访问, 子类可以继承, 外部不可以访问.默认就是protected 2.需要给外部使用的方法或者属性就定义在头文件里面声明.h 不需要暴露给外部

OC基础 类的三大特性

OC基础  类的三大特性 OC的类和JAVA一样,都有三大特性:继承,封装,多态,那么我们就来看一下OC中类的三大特性. 1.继承 继承的特点: (1)子类从父类继承了属性和方法. (2)子类独有的属性和方法不能被父类使用. (3)子类独有的属性和方法,不能够在子类之间互相使用. (4)子类能够重写父类的方法,子类调用该方法时:首先调用子类的方法,如果子类没有该方法,就调用父类的该方法. (5)子类对象指针可以转换成父类对象指针,但是父类对象指针不能够转换成子类对象指针. 三种权限变量的继承:

黑马程序员 ——ios点语法和类的三大特性

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 一.点语法 (一)认识点语法

第9章 Java类的三大特性之一:继承

1.什么是继承 子类继承父类就是对父类的扩展,继承时会自动拥有父类所拥有的处private之外的所有成员作用:增加代码复用语法格式: class 子类名 extends 父类名{----}第9章 Java类的三大特性之一:继承例子: 1 //测试类,创建子类对象,可以直接调用属性和方法 2 public class testDog { 3 public static void main(String[] args) { 4 Dog dog = new Dog(); 5 dog.age=10; 6

Golang-面向对象编程三大特性-多态

Golang-面向对象编程三大特性-多态 基本介绍 变量(实例)具有多种形态.面向对象的第三大特征,在 Go 语言,多态特征是通过接口实现的.可以按照统一的接口来调用不同的实现.这时接口变量就呈现不同的形态. 快速入门 在前面的 Usb 接口案例,Usb usb ,既可以接收手机变量,又可以接收相机变量,就体现了 Usb 接口 多态特性.[点明] 接口体现多态的两种形式 多态参数 在前面的 Usb 接口案例,Usb usb ,即可以接收手机变量,又可以接收相机变量,就体现了 Usb 接口 多态.

三、java三大特性--多态

面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是为了重用父类代码.两个类若存在IS-A的关系就可以使用继承,同时继承也为实现多态做了铺垫.那么什么是多态呢?多态的实现机制又是什么? 所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象