php面向对象--继承
继承
extends 关键字来继承类
被继承的类,我们称之为父类
继承后的类,我们称之为子类
子类继承父类非私有的属性和方法
public 在本类,子类,以及类的外部都访问
protected 保护型的属性,自己以及子类能访问
private 私有的不能被继承,只能自己访问
子类可以访问父类的非私有的属性和方法, 使用$this关键字访问
覆盖:子类中声明与父类相同名称的属性和方法,
属性被覆盖后,就无法访问父类的属性
方法被覆盖后,依旧可以访问父类的方法 parent::方法名()
final修饰类和方法
被final修饰的类是不能被继承
被final修饰的方法不能被子类覆盖
static修饰属性和方法
属性
static修改的属性是可以修改的,是所有实例共享,也就是属于类,非静态的是每个对象都会保存一份不一样的
访问:本类中使用 self::$属性名 父类中使用 parent::$属性名
方法
static修饰的方法,它里面只能使用静态属性和静态方法,不能使用普通的属性和普通的方法
访问:类名::静态方法() self::静态方法()
静态方法和属性的用途,单例设计模式:
设计模式其实就是前人总结的一些规律
作为对象的创建模式,单例设计模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局提供这个单例,它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用
接口
声明
interface 接口名{
//方法是不能有实现
function 方法名();
}
实现接口
class 类名 implements 接口1,接口2{
//必须要实现接口中定义的方法,否则会报错
}
抽象类
声明
abstract class 类名{
//抽象类当中也可以包含有实现的方法
function 方法名(){
//
}
//抽象方法不能有实现,一个抽象类中必须要有一个抽象方法
abstract function 方法名();
}
使用
class 类 extends 抽象类{
//实现我们的抽象方法
function 方法名(){
}
}
魔术方法
__toString 当将对象直接输出时,会调用此魔术方法,此方法返回一个字符串
__call 当调用的方法不存在时
__callStatic 当调用的静态方法不存在时
__get 当访问不存在的属性
__set 当给不存在的属性赋值时
php面向对象--继承的更多相关文章
- OC面向对象—继承
OC面向对象—继承 一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). ...
- 面向对象继承实例(a如何继承b)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js面向对象继承
前言 最近看到js面向对象这章节了,主要学习了原型和面向对象继承关系,为了梳理自己的知识逻辑,特此记录. js的面向对象 先说说我目前了解的js创建对象方法 1.写一个函数,然后通过new创建对象 2 ...
- Php面向对象 – 继承和重写
Php面向对象 – 继承和重写 承受: php于,通过类.使用特殊的经营宗旨. 通过定义类,采用extends来表示当前的类对象继承该类的对象. 样例: class C { public $p_c ...
- Java面向对象 继承(下)
Java面向对象 继承(下) 知识概要: (1)抽象类 1.1 抽象类概述 1.2 抽象类的特点 ...
- Java面向对象 继承(上)
Java面向对象 继承 知识概要: (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...
- js高级-面向对象继承
一.工厂模式创建对象及优缺点 继承就是把公共的部分抽象出来作为父类,基类.吃饭,跑步等 var a = {}; //批量创建不方便,不能重复设置公共属性的代码 //工厂模式出现了,创建10个Cat对象 ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- Python之面向对象继承和派生
Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...
- javaScript面向对象继承方法经典实现
转自原文javaScript面向对象继承方法经典实现 JavaScript的出现已经将近20多年了,但是对这个预言的褒贬还是众说纷纭.很多人都说JavaScript不能算是面向对象的变成语言.但是Ja ...
随机推荐
- jMiniLang设计思路
前言 项目地址:https://github.com/bajdcc/jMiniLang 演示视频:https://www.bilibili.com/video/av13294962 jMiniLang ...
- Ubuntu 15.04 开启远程桌面
1.安装Xrdp Windows远程桌面使用的是RDP协议,所以ubuntu上就要先安装Xrdp,终端命令行输入安装: sudo apt-get install xrdp vnc4server xba ...
- C# XCOPY命令 预先生成事件命令行”和“后期生成事件命令行”
$(ConfigurationName) 当前项目配置的名称(例如,“Debug|Any CPU”). $(OutDir) 输出文件目录的路径,相对于项目目录.这解析为“输出目录”属性的值.它包括尾部 ...
- 2018-11-17 js的this引起的血案
js的this. 昨天测试,删除商品会报错,马上去测了一把,的确会报错.为毛线呢? SubOrderItem: function (orderitem) { if (orderitem.ordernu ...
- ubuntu 按键替换 Control_R to Left
ubuntu 按键替换 Control_R to Left 1 查看当前键盘布局 $xmodmap -pke keycode 105 = Control_R NoSymbol Control_Rkey ...
- Java-----多线程sleep(),join(),interrupt(),wait(),notify()的作用
关于Java多线程知识可以看看<Thinking in Java >中的多线程部分和<Java网络编程>中第5章多线程的部分 以下是参考<<Java多线程模式> ...
- xampp默认项目文件夹htdocs
正确安装好XAMPP后,默认是必须将php程序放到 xampp\htdocs文件夹下才能运行但可以修改.. 参考:http://zhidao.baidu.com/link?url=sY_DPSeGBA ...
- UVa 11178:Morley’s Theorem(两射线交点)
Problem DMorley’s TheoremInput: Standard Input Output: Standard Output Morley’s theorem states that ...
- 漫游Kafka入门篇之简单介绍(1)
介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以 ...
- react-native新导航组件react-navigation详解
http://blog.csdn.net/sinat_17775997/article/details/70176688