PHP 重载

一个类中的方法与另一个方法同名,但是参数不同,这种方法称之为重载方法。

很遗憾因为 PHP 是弱类型的语言, 所以在方法的参数中本身就可以接收不同类型的数据,又因为 PHP 的方法可以接收不定个数的参数,所以在 PHP 里面没有严格意义上的方法重载。

PHP 中的重载是指在子类里面定义了一个和父类同名的方法,且该方法将在子类中将把父类的方法覆盖。

在子类中,因为从父类继承过来的方法可能无法访问子类定义的属性或方法,所以有时候重载是必要的。

例子:<?php

class Person {

var $name;

var $age;

function say() {

echo "我的名字叫:".$this->name."
";

echo "我的年龄是:".$this->age;

}

}

// 类的继承

class Student extends Person {

var $school; //学生所在学校的属性

function say() {

echo "我的名字叫:".$this->name."
";

echo "我的年龄是:".$this->age."
";

echo "我正在".$this->school."学习";

}

}

$t1 = new Student();

$t1->name = "张三";

$t1->age = "18";

$t1->school = "人民大学";

$t1->say();

?>

运行该例子,输出:

我的名子叫:张三

我的年龄是:18

我正在人民大学学习

提示

如果父类定义方法时使用了 final 关键字,则不允许被子类方法覆盖。

访问父类被覆盖的方法

可以通过 :: 符号来访问父类被覆盖的方法或成员属性:

function say() {

parent::say();

//或者

Person::say();

echo "我在".$this->school."上学
";

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php重载,PHP 重载相关推荐

  1. 【C++ 语言】面向对象 ( 函数重载 | 运算符重载 | 运算符重载两种定义方式 | 拷贝构造方法 | RVO 优化 | NRVO 优化 )

    文章目录 函数重载 运算符重载 ( 类内部定义云算符重载 ) 运算符重载 ( 类外部定义运算符重载 ) 可重载的运算符 拷贝构造方法 编译器优化 ( RVO 优化 | NRVO 优化 ) 完整代码示例 ...

  2. java方法重载和重载方法_Java 8的方法参考进一步限制了重载

    java方法重载和重载方法 方法重载一直是一个充满喜忧参半的话题. 我们已经在博客上介绍了它,并介绍了几次警告: 您会后悔对Lambdas应用重载! 保持干燥:方法重载 为什么每个人都讨厌操作员超载 ...

  3. java方法重载和重载方法_我们可以在Java中重载main()方法吗?

    java方法重载和重载方法 The question is that "can we overload main() method in Java?" 问题是"我们可以在 ...

  4. java方法重载和重载方法_Java中的重载与重载

    java方法重载和重载方法 Overriding Vs Overloading In Java 在Java中覆盖vs重载 Overriding and Overloading are the core ...

  5. java方法重载和重载方法_Java中的方法重载

    java方法重载和重载方法 The concept of Method Overloading in Java is where a class can have multiple methods w ...

  6. TS中的方法重载,函数重载,构造器重载

    什么叫重载 名字相同 ,参数类型不同 方法重载 方法重载在类中定义多个同名的方法,但是每一个同名的方法要求不同数据类型和不同参数 下面来实现一个方法重载 以ArrayList 为例 可以查看数据 可以 ...

  7. Java 重载(什么是重载?什么时候重载?重载有什么好处?)

    目录 重载 重载的来源 重载的要求 重载的优点 重载 重载的来源 重载的背景:需求 :在一个类中,已经实现了两个整数(int类型) 求和.那么能不能做两个float类型的求和? 解决方法: 可以创建新 ...

  8. 【带你吃透C++】运算符重载(赋值运算符重载)原来是这么一回事

    look here 运算符重载 赋值运算符重载 细节总结: – the End – 运算符重载 C++为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊函数名的函数,其目的就是让自定义类型可以 ...

  9. c++重载运算符_C/C++编程笔记:运算符重载丨重载C++中的New和Delete运算符

    new和delete运算符也可以像C ++中的其他运算符一样重载.New和Delete运算符可以全局重载,也可以在特定类中重载. (1)如果使用某个类的成员函数来重载这些运算符,则意味着这些运算符仅针 ...

  10. 【Groovy】Groovy 运算符重载 ( 运算符重载 | 运算符重载对应方法 )

    文章目录 一.运算符重载 二.运算符重载对应方法 三.完整代码示例 一.运算符重载 Groovy 类可以进行运算符重载 , 任何一个类都可以使用预定义的 运算符 进行运算 , 如 " + - ...

最新文章

  1. java对象的状态,Java编程菜鸟课程:状态对象
  2. 让一个 csproj 项目指定多个开发框架
  3. 如何用python进行量化交易_从零开始学习Python和量化交易
  4. Pixhawk代码分析-姿态解算篇C
  5. Altera之VIP TPG学习笔记
  6. [Leetcode][第141、142题][JAVA][环形链表][哈希表][快慢指针][数学推理]
  7. [蓝桥杯]2018年第九届省赛真题C/C++ B组 填空+大题
  8. android imageview 上蒙版,在iOS中为UIImageView的圆形蒙版设置动画
  9. SpringCloud学习笔记025---SpringBoot_注释理解_@Qualifier 注释
  10. paip.提升安全性---网站各种验证码特点及识别率
  11. 三菱PLC特殊软元件
  12. 雨课堂和微助教比较分析
  13. 什么是MTU值,如何设置最快最好?
  14. 【前端17_JS】ES 6:Let 、Const、对象冻结、解构赋值、暂时性死区 TDZ、惰性求值、模板字符串
  15. 罗克韦尔AB PLC RSLogix5000中的位指令使用方法介绍
  16. 亚马逊、敦煌、速卖通、阿里国际站、lazada、shopee、ebay、wish、wayfair、mercari、沃尔玛、newegg 跨境电商运营实战攻略
  17. linux清除文件后df还是满的,Linux系统下如何用du和df命令清除大文件?
  18. 盖亚假说:地球是一个生命体吗?
  19. 《C++0x漫谈》系列之:Concept, Concept!
  20. echarts 与 百度地图bmap结合系列: 如何设置地图缩放级别和监听缩放事件

热门文章

  1. 将Infinispan版本映射为最低Java版本
  2. gkz cloud sql_使用Cloud SQL的Google App Engine全文搜索
  3. 可视化Java 9模块关系
  4. 基于JBoss Fuse 6.2的JBoss BPM微服务集成指南
  5. 如何以大数据的JAX-RS响应的形式将JPA结果流化/序列化
  6. Apache骆驼丝攻示例
  7. 2014年夏末大Java新闻
  8. 您基于JEE的Web项目的结构是什么?
  9. Spring MVC:表单处理卷。 5 –选择,选项,选项标签
  10. 使用Camel在来自不同来源的Solr中索引数据