重蔚自留地php学习第44天——继承重载

回顾

自动加载:__autoload(),而是在需要使用的时候,而类又没有被加载进内存情况下,会自动触发的一个函数而已。

 

类常量:const 常量名

使用:类名::常量名

 

静态:静态属性和静态方法,static

使用:类名::$属性名,类名::方法名()

静态方法里不能使用$this

 

魔术方法

__toString():在将对象进行字符串输出的时候(echo),会自动触发

__clone():在对象克隆的时候会自动调用的方法(被克隆出来的新对象调用)

 

模式

单例模式:一个类只能创建一个对象

特点:三私一公(私有化构造方法,私有化克隆方法,私有化静态属性,公有化静态方法)

 

练习:

注册:注册表单

登录:登录表单

处理

DB类文件

Privilege类

index.php:欢迎页

 

OOP的三大特征

封装,继承,多态

封装:将数据和对数据的操作捆绑到一起。隐藏了数据以及数据的处理,但是对外提供了操作的接口(公共的方法)
封装是可以分层次的。

继承:指的是当封装的层次低于某个层次的时候,低层次的封装可以直接从高层次的封装(class)去获得其已经拥有的属性或者方法。
class student{
//属性
public $student_id;

//方法
public function zuocao(){
课间操
}
}

class ElementalStudent{
//属性
public $student_id;

//方法
public function zuocao(){
第八套广播体操
}
}

继承
class ElementalStudent 继承 Student{

}

多态:多种形态。在面向对象里,可以存在多个同名的方法,要求每个方法的参数列表或者返回值类型不一样。(PHP不支持多态)
重载:对一个同名函数,使用不同的实现方式
PHP:错误的
class Person{
public function zuocao(小学生){
小学生做操
}

public function zuocao(){
做操
}
}

JAVA:正确
class Person{
public string function zuocao(){
return 字符串;
}

public Int function zuocao(){
return 整型;
}

Public int function zuocao(int str){
return str;
}
}

PHP继承

语法:class 子类 extends 父类

子类:继承其他类的类称之为子类。

父类:封装的最高层的类,被继承的类称之为父类。

重蔚自留地php学习第44天——继承重载

继承到底继承了哪些东西?

继承了属性,非私有的方法(普通的)

属性继承:

重蔚自留地php学习第44天——继承重载

方法继承:

重蔚自留地php学习第44天——继承重载

 

protected:受保护的,指的是在继承链上,都可以在另外的类(不论子类和父类)都可以使用受保护的方法或者属性

继承和访问的原理

重蔚自留地php学习第44天——继承重载

继承冲突

子类中有与父类相同的属性或者方法,那么这个时候就出现了继承冲突。

重写:overwrite,子类拥有与父类同名的属性或者方法。意味着一个类中只有一个改名字的方法。

重蔚自留地php学习第44天——继承重载

注意

  1. 如果父类的的方法是私有的,那么子类拥有同名方法的时候,不是重写

重蔚自留地php学习第44天——继承重载重写父类方法的时候,子类里面的访问修饰限定符必须要比父类的级别低

重蔚自留地php学习第44天——继承重载

单继承

PHP中一个子类只能继承自一个父类

错误

重蔚自留地php学习第44天——继承重载

如果非要继承多个类,是可以做到的。链式继承。

重蔚自留地php学习第44天——继承重载

特殊类:不能被继承的类,只能被继承的类

final类:当前类已经是最末尾的了

  语法:Final class 类名

重蔚自留地php学习第44天——继承重载

final的意义:不希望当前类还被别的类继承。防止类被扩展。

 

final还能修饰方法,表示方法不能被重写

重蔚自留地php学习第44天——继承重载

final关键字只能修饰类和方法,不能修饰属性。

abstract类:抽象类,只能被继承

语法:abstract class 类名

抽象类指的是拥有抽象方法

抽象方法:使用abstract关键字修饰,没有方法体的方法、

 

实例化抽象类

重蔚自留地php学习第44天——继承重载

继承自抽象类的子类必须实现抽象类里的抽象方法(或者将当前子类也声明成抽象类)

重蔚自留地php学习第44天——继承重载

抽象类中可以有哪些东西?

凡是正常类出现的东西(属性,方法和常量)都可以在抽象类中出现。

 

抽象类的意义?

  1. 抽象类只能被继承,用来规范子类的结构。

接口

接口就是一个简单的容器,该容器专门用来规范类的结构的东西。

语法:interface 接口名字{接口体}

接口体

  1. 不能有属性
  2. 方法必须没有方法体
  3. 所有的访问限定修饰符必须是Public

 

接口定义及接口内容

重蔚自留地php学习第44天——继承重载

接口的实现:接口的实现必须通过类才能实现

语法:class 类名 implements 接口名

类要实现接口,必须实现接口里的所有方法,实现就是给方法增加方法体。

 

接口的使用

重蔚自留地php学习第44天——继承重载

一般较小的项目,追求效率的情况下,不会使用抽象类和接口来进行规范

一般较大的项目,项目团队比较多,就会使用接口或者抽象类来规范一些操作。

 

接口可以继承接口

重蔚自留地php学习第44天——继承重载

面试题:

  1. PHP是否支持多继承?如何模拟?

不支持,链式继承

  1. 接口是不是类?

不是类,接口就是接口

  1. 接口是不是抽象类?

不是,抽象类是类的一种

  1. PHP是否支持多态?

不支持,PHP不允许重名函数或者方法的存在

PHP重载

在对象去访问一个类中不存在或者权限不够的属性或者方法的时候,会自动触发的一些列魔术方法。

 

PHP重载分为两种:属性重载,方法重载

属性重载:访问不存在的或者权限不够的属性

__get():访问一个不存在或者权限不够的属性的时候,会自动调用的方法

重蔚自留地php学习第44天——继承重载

作用:

  1. 提供了一种机制,能够让对象在外部访问原本不能在类外部访问的属性的机制
  2. 能够控制外部对内部属性的访问

重蔚自留地php学习第44天——继承重载

__set():在设置一个不存在或者权限不够的属性的时候,会自动调用的方法

重蔚自留地php学习第44天——继承重载

作用:

  1. 使得内部一些不能在外部访问的属性在外部被设置值
  2. 能够控制部分属性可以被设置,而部分不能被设置
  3. 能够限定对象,不能无限扩展其户型

重蔚自留地php学习第44天——继承重载

练习

  1. 抽象类,接口,重载

 

__isset()(isset和empty时调用):当在外部使用isset函数来判断对象的属性的时候会自动调用的方法

重蔚自留地php学习第44天——继承重载

__unset()(unset调用):在外部对对象的属性进行unset的时候会自动调用的方法

重蔚自留地php学习第44天——继承重载

方法重载:访问不存在的或者权限不够的方法

__call():普通方法访问该方法

重蔚自留地php学习第44天——继承重载

__callStatic():当调用静态方法时会自动访问

重蔚自留地php学习第44天——继承重载

 

不存在的处理方式

重蔚自留地php学习第44天——继承重载

子类可以去显示的调用父类的构造方法

语法:parent::__construct();

重蔚自留地php学习第44天——继承重载

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/10700.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2019年1月7日 00:00
下一篇 2019年1月9日 12:45

相关推荐

  • PHP 生成唯一订单号函数

    PHP 生成唯一订单号函数 一、应用场景        有电子商城项目,需要生成订单号。当时的考虑很简单,取系统时间加上随机数,或者使用 uniqid() 方法。仔细考虑下上述方法,在顾客购买量少的情况下,订单重复的可能...

    2018年4月28日 PHP案例操作
    0242
  • PHP中的SEO优化技巧。

    随着互联网发展的不断深入,越来越多的企业开始重视SEO优化技巧,以提高自己的品牌知名度和业务流量。其中,PHP是一种常用的编程语言,几乎所有的网站都使用它来开发和维护自己的网站。因此,在PHP中使用一些简单...

    2023年5月30日
    01
  • (理论篇)localhost与127.0.0.1的区别

    很多人会接触到这个ip地址127.0.0.1。也许你会问127.0.0.1是什么地址?其实127.0.0.1是一个回送地址,指本地机,一般用来测试使用。大家常用来ping 127.0.0.1来看本地ip/tcp正不正常,如能ping通即可正常使用。 ...

    2016年10月24日
    0289
  • php的成员方法(函数)

    一个需求 当我们需要让对象完成某个任务(比如计算,比如上传下载文件,分页等等), 就需要在类中定义函数, 这时我们就将这样的函数称为 成员方法. 举例说明: 代码:

    2018年4月9日
    0212
  • PHP入门指南:数据库连接。

    PHP是一种常用的服务器端脚本语言,广泛应用于Web开发领域。其中,与数据库的交互是PHP的一个重要应用场景,本篇文章将介绍如何在PHP中进行数据库连接。一、数据库连接的基本概念在Web应用中,一般使用关系型数据...

    2023年5月22日
    00
  • PHP入门指南:共享内存。

    在Web开发领域中,PHP是一种非常流行的编程语言。它被广泛应用于动态网站的开发,也用于开发各种类型的框架和应用程序。在这个快速发展的行业中,学习PHP编程语言可以为您打开许多机会。在本篇文章中,我们将分享...

    2023年5月22日
    02
  • PHP中限制IP段访问、禁止IP提交表单的代码(附代码)

    本文为大家讲解的是PHP中限制IP段访问、禁止IP提交表单的代码示例,感兴趣的同学参考下。 下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改

    2017年9月27日
    0382
  • PHP中的错误和异常处理指南。

    PHP是一种在Web开发领域中广泛使用的脚本语言,它为开发者提供了丰富的函数和工具集。然而,在开发过程中,不可避免地会出现各种错误和异常。因此,在PHP中进行错误和异常处理是必不可少的。本文将为读者提供PHP...

    2023年5月23日
    00

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息