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 ...
随机推荐
- vue-cli中实现全选、单选计算总价格(vue2.0)
<template> <div> <table> <tr> <td><input type="checkbox" ...
- jdom 插入 修改 删除
创建XML文档 XML文件是一种典型的树形文件,每个文档元素都是一个document元素的子节点.而每个子元素都是一个Element对象,对象可以向下包含. 1 因此我们可以通过先创建元素再将元素添加 ...
- Bootstrap学习笔记(2)--栅格系统深入学习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ADO.NET数据库应用开发_ExtendedProperties属性
7.5.5 ExtendedProperties属性 ExtendedProperties属性用来获取存储自定义属性的集合.可以在该属性中增加附加的存储信息.它的扩展属性必须是字符串类型.当以XML的 ...
- ubuntu boot空间不足的解决方法
ubuntu boot空间不足的解决方法 2013年12月11日 11:11:39 yypony 阅读数:17000 标签: ubuntu内存boot内核更多 个人分类: linux_usageubu ...
- js学习笔记22----BOM属性和方法
BOM基本概念 : Browser Object Model 浏览器对象模型. BOM属性: window.navigator.userAgent : 浏览器信息 判断是否是某个浏览器,可以用 ind ...
- [android] AndroidManifest.xml【 manifest -> uses-permission】
在 API Level 1 时被引入 简介: 在某些情况下,你为app设置的权限将会影响到google应用商店会用何种规则来过滤你的APP. 如果你需要一个硬件相关的权限——CAMERA,googl ...
- C++ 类中的const关键字
//类中的const关键字 #include<iostream> using namespace std; class Point{ public: //这个const关键字本质上修饰的是 ...
- hdu 5443 The Water Problem(长春网络赛——暴力)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5443 The Water Problem Time Limit: 1500/1000 MS (Java ...
- PHP中strlen和mb_strlen函数的区别
strlen strlen — 获取字符串长度 int strlen ( string $string ) 返回给定的字符串 string 的长度. mb_strlen int mb_strlen ( ...