热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php面向对象2

继承概念:如果一个类有子类,那么该子类会继承父类的一切东西(私有成员访问不到)在定义子类的时候需要加一个关键字:

继承
概念:如果一个类有子类,那么该子类会继承父类的一切东西(私有成员访问不到)
在定义子类的时候需要加一个关键字:extends
特点:单继承,一个类只能有一个父类
如果父类中有构造函数,子类在实例化的时候要按照父类构造函数的标准来实例化

子类对父类方法的重写:在子类中写一个同样的方法
final:用来修饰类,代表该类是一个最终类,该类无法被继承。

class Info
{
public $code;protected $name;private $sex;function __construct($s) //构造函数
{$this->sex = $s;}
}
class Test extends Info
{
}
$t = new Test("女");
$t->Code = "p001";
var_dump($t);

子类中调用父类的方法  parent::

class Info
{
public $code;protected $name;private $sex;function Say(){echo "hello";}
}
class Test extends Info
{
function Say(){parent ::Say(); //调用父类的Say()方法echo "Test Say";}
}
$t = new Test();
$t->say();

静态成员
类里面的普通成员是属于对象的,不是属于类的(调用的时候是用对象调用的)
什么叫做静态成员:类静态成员是属于类的,不是属于每个对象的
定义静态成员用static关键字
静态方法里面无法调用普通成员
静态方法可以调用静态成员,使用self关键字调用
self代表该类,$this代表该对象

1 class Info
2 {
3 public static $class; //static关键字定义静态的
4 public $code;
5 protected $name;
6 private $sex;
7 static function Test() //静态方法
8 {
9 self::$class; //调用自身类里面的静态成员
10 echo "静态方法!";
11 }
12 function Say()
13 {
14 echo self::$class; //普通方法里面可以调用静态成员
15 echo "hello";
16 }
17 }
18 $r = new Ren();
19 Info::$class = "0305"; //访问静态成员用 ::
20 Info::Test(); //调用静态方法

const  n = 20;   //将某些类里面常用到的东西定义为一个常量,方便使用

多态
概念:当父类引用指向子类实例的时候,由于子类对父类函数进行了重写,导致我们在使用该引用相应的方法表现出的不同
条件:

1.必须有继承
2.子类必须要对父类的方法重写

 

函数重载
条件:

1.函数名必须相同
2.函数里面参数的个数相同
2.如果个数相同,类型不同

 

__tostring()方法

1 class Ren
2 {
3 public $name;
4 public $sex;
5 function __tostring() //可以输出类的一些描述
6 {
7 return "这个对象包含name和sex,一个Say方法";
8 }
9 }
10 $r = new Ren();
11 echo $r;

对象的克隆

1 $r->name = "张三";
2 $r1 = clone $r; //克隆对象
3 echo $r->name;

克隆对象,然后修改内容

class Ren
{
public $name;public $sex;function __clone() //对象克隆的时候自动执行
{$this->name = "李四"; //$this指复本(克隆出来的新对象)
}
}
$r = new Ren();
$r->name = "张三";
$r1 = clone $r; //克隆对象
echo $r->name; //输出内容为“张三”
echo $r1->name; //输出内容为“李四”

 

转:https://www.cnblogs.com/zk0533/p/5442920.html



推荐阅读
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 深入解析Java虚拟机的内存分区与管理机制
    Java虚拟机的内存分区与管理机制复杂且精细。其中,某些内存区域在虚拟机启动时即创建并持续存在,而另一些则随用户线程的生命周期动态创建和销毁。例如,每个线程都拥有一个独立的程序计数器,确保线程切换后能够准确恢复到之前的执行位置。这种设计不仅提高了多线程环境下的执行效率,还增强了系统的稳定性和可靠性。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 本文深入探讨了原型模式在软件设计中的应用与实现。原型模式通过使用已有的实例作为原型来创建新对象,而不是直接通过类实例化。这种方式不仅简化了对象的创建过程,还提高了系统的灵活性和效率。具体来说,原型模式涉及一个支持克隆功能的接口或基类,子类通过实现该接口来提供具体的克隆方法,从而实现对象的快速复制。此外,文章还详细分析了原型模式的优缺点及其在实际项目中的应用场景,为开发者提供了实用的指导和建议。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在C#编程中,设计流畅的用户界面是一项重要的任务。本文分享了实现Fluent界面设计的技巧与方法,特别是通过编写领域特定语言(DSL)来简化字符串操作。我们探讨了如何在不使用`+`符号的情况下,通过方法链式调用来组合字符串,从而提高代码的可读性和维护性。文章还介绍了如何利用静态方法和扩展方法来实现这一目标,并提供了一些实用的示例代码。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 数组容量的动态调整与优化策略
    在探讨数组容量动态调整与优化策略时,本文分析了两种常见的方法。首先,通过使用for循环逐个复制元素实现扩容,但这种方法存在计算索引的复杂性问题。其次,利用System.arraycopy()方法进行高效复制,显著提升了性能和代码可读性。此外,文章还讨论了动态数组在不同应用场景下的优化策略,包括预分配容量和按需扩展等技术,以提高程序的整体效率。 ... [详细]
  • 在PHP的设计中,预定义了9个超级全局变量、8个魔术变量和13个魔术函数,这些变量和函数无需声明即可在脚本的任意位置使用。这些特性在PHP开发中极为常见,能够显著提升开发效率和代码的灵活性。相比之下,Java并没有类似的内置机制,但通过其他方式如上下文对象和反射机制,也可以实现类似的功能。本文将详细探讨这两种语言中这些特殊变量和函数的使用方法及其应用场景。 ... [详细]
  • Java 模式原型在游戏服务器架构中的应用与优化 ... [详细]
author-avatar
行侠客人生_983
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有