记PHP面向对象编程
访问控制
public(公开的):可以在类中、子类中、类外访问。
protected(受保护的):只能在类本身及子类中访问。
private(私有的):只能在声明他们的类中进行访问,私有的类成员不能被子类或者这个类的对象实例直接访问。
抽象类和方法
在继承概念被应用在一些场景中,创建一个父类的实例将会显得不怎么合适。在这种情况下,如果将父类定义为一个抽象基类,而不是标准的基类,会显得更加合适(抽象类不能被实例化)。
抽象类定义了这个基类的继承类(子类)中的一些方法。然后子类会负责定义这些方法的真正的实现。
抽象类和普通类的区别在于,如果试图从抽象类创建一个对象将会出现一个致命错误,抽象类就是被用来扩展的,然后我们就可以创建这些派生类的实例。
抽象类和方法的定义:
//抽象类的定义从abstract关键字开始
abstract class People{
protected $name = ""; //抽象方法以abstract开始,并且抽象方法没有方法体,以分号结束
abstract public function setName($name); } //子类中实现抽象类的方法
class Teacher extends People{ public function setName($name){
$this->name = $name;
}
}
注意:
1.在子类里实现抽象方法的时候,其可见性必须高于或等于抽象方法的定义的可见性。如果抽象方法是公开的(public),子类里的实现方法也必须是公开的。如果抽象方法是受保护的(protected),那么子类将只能是受保护的或者公开的。
2.我们不能将抽象方法定义为私有的(private),因为一个私有的方法不能够被继承。
3.在所有情况下,方法的实现版本也必须和抽象方法具有一样数目的参数(函数签名要一致)。
4.子类中必须实现基类中所有的抽象方法,否则将会出现一个致命错误。
5.属性没有抽象一说,抽象类中的属性定义为正常属性,子类也可以覆盖抽象类中的属性,此时属性的可见性设置与抽象方法是一致的(见第1条)。
本章博客会不定期更新所有有关PHP面向对象的知识,敬请期待……
记PHP面向对象编程的更多相关文章
- 04面向对象编程-01-创建对象 和 原型理解(prototype、__proto__)
1.JS中对象的"不同":原型概念 从Java中我们可以很好地去理解 "类" 和 "实例" 两个概念,可是在JavaScript中,这个概念 ...
- 面向对象编程 —— java实现函数求导
文章目录 ★引子 ★求导 ★最初的想法 ★初步的想法 ★后来的想法 ★最后的想法 ★编程范式 ★结尾 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科 ...
- JavaScript学习笔记(十六)——面向对象编程
在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...
- 面向对象编程 -------JavaScrip
本文摘要:http://www.liaoxuefeng.com/ 一定明白面向对象的两个基本概念: 类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学 ...
- angular2系列教程(六)两种pipe:函数式编程与面向对象编程
今天,我们要讲的是angualr2的pipe这个知识点. 例子
- 带你一分钟理解闭包--js面向对象编程
上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...
- PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程
PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算 ...
- Delphi_09_Delphi_Object_Pascal_面向对象编程
今天这里讨论一下Delphi中的面向对象编程,这里不做过多过细的讨论,主要做提纲挈领的描述,帮助自己抓做重点. 本随笔分为两部分: 一.面向对象编程 二.面向对象编程详细描述 ------------ ...
- python基础-面向对象编程
一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...
随机推荐
- MySQL主从复制 + Mycat实现读写分离
说明:两台MySQL服务器都是使用CentOS6.5系统,MySQL版本为mysql-5.7.17 MySQL一主一被实现主从复制 注意:写包括insert,delete,update 操作:读只有s ...
- 南天PR2、PR2E驱动下载,xp,win7,win8,win8.1,win10 32位64位驱动下载安装教程
家里开淘宝店,有个针式打印机驱动.电脑各种换系统,为了装这个驱动可是废了不小的劲.不敢独享,所以现在把各种驱动以及安装教程分享出来. 注意: 打印机在开机状态下,电脑在开机状态下,不要插拔连接线!!! ...
- Linux入门(14)——Ubuntu常用快捷键
打开终端:ctrl + alt + T 左右分屏:ctrl + win + 箭头左或者箭头右 显示桌面:Ctrl + win + D 切换工作区:ctrl + alt + 箭头左或者箭头右 新建文件夹 ...
- Spring 为Bean对象执行初始化和销毁方法
1)初始化: ①可以利用<bean>元素的init-method="方法名"属性指定初始化方法. ②指定的初始化方法是在构造方法调用后自动执行.若非单例模式,则每创建一 ...
- 长话短说 之 js的原型和闭包
原型链:undefined, number, string, boolean 属于简单的值类型,函数.数组.对象.null.new obj()都是引用类型.检测值类型用typeof x 即可,检测引用 ...
- json解析eval()中文乱码问题的解决
只需要后台post请求中添加: resp.setContentType("text/html;charset=utf-8"); req.setCharacterEncoding(& ...
- css左侧固定宽度,右侧自适应的几种实现方法
左侧固定,右侧自适应或者右侧固定在,左侧自适应是一样的.这种布局很常见,而且面试过程中也经常会问到,这里我总结的方法一共有5种.要实现这种布局,也算比较简单.我们先给出html结构: <div ...
- JavaScript--我发现,原来你是这样的JS:面向对象编程OOP[1]--(理解对象和对象属性类型)
一.介绍 老铁们,这次是JS的面向对象的编程OOP(虽然我没有对象,心累啊,但是可以自己创建啊,哈哈). JS高程里第六章的内容,这章内容在我看来是JS中很难理解的一部分.所以分成三篇博客来逐个理清. ...
- Leetcode题解(32)
107. Binary Tree Level Order Traversal II 题目 直接代码: /** * Definition for a binary tree node. * struct ...
- sublime中配置Java 环境
1.线安装jdk,并配置好环境变量2.创建批处理或Bash Shell脚本文件打开任意的文本编辑器,输入下面的内容,并保存为runJava.bat文件,然后把runJava.bat批处理文件移动到JD ...