博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
继承多态
阅读量:5325 次
发布时间:2019-06-14

本文共 1435 字,大约阅读时间需要 4 分钟。

<?php

//1.封装

//目的:为了使类更加安全
//做法:
//1.将成员变量变为私有的
//2.在类里面做一个方法来间接的访问成员变量
//3.在该方法里面加控制

//2.继承

//1.父类
//2.子类
//子类可以继承父类的一切
//重写:override
//特点:单继承,一个子类只能有一个父类,一个父类可以派生多个子类

/*class Ren
{
public $name;
function Say()
{
echo $this->name."正在讲话";
}
}

class China extends Ren

{
//子类对父类的方法进行重写
function Say()
{
parent::Say();
echo "你好";
}
function Run()
{
echo $this->name."正在跑步";
}
}

class America extends Ren

{
//子类对父类的方法进行重写
function Say()
{
echo "hello";
}
}*/

/*$c = new China();

$c->Say();
$a = new America();
$a->Say();
var_dump($c);
*/

//overload 重载
//可以使类里面的某个方法产生多种效果,根据传入的参数不同,可以执行不同的逻辑
//也是多态的一种,编译多态
/* class Test
{
public string show()
{
return "0参";
}
public string show(string s)
{
return "1参";
}
public string show(string s,string a)
{
return "2参";
}
}
Test t = new Test();

t.show("a","b");

*/

//3.多态
//当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同,称为多态
//运行多态

//条件

//1.要有继承
//2.父类引用指向子类实例
//3.要有重写
//4.调重写的方法

//父类

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

 

?>

转载于:https://www.cnblogs.com/l123789/p/6170046.html

你可能感兴趣的文章
基础学习:C#中float的取值范围和精度
查看>>
javaagent 简介
查看>>
python升级安装后的yum的修复
查看>>
Vim配置Node.js开发工具
查看>>
web前端面试题2017
查看>>
ELMAH——可插拔错误日志工具
查看>>
MySQL学习笔记(四)
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
两数和
查看>>
移动设备和SharePoint 2013 - 第3部分:推送通知
查看>>
SOPC Builder中SystemID
查看>>
MySQL数据库备份工具mysqldump的使用(转)
查看>>
NTP服务器配置
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>