面向对象中private理解
我们大家都知道思想訪问修饰符。public,protected,private,那么我们知道了继承中private私有属性能够继承吗?我么接下来做个小实验
class A {
private $class_name = 'in A class';
public $author;
protected $book;
public function sayA() {
var_dump($this);
echo $this->class_name;
}
}
class B extends A {
private $class_name= 'in B class';
public $author;
protected $book;
public function sayB() {
var_dump($this);
echo $this->class_name;
}
}
//注意观察输出细节,私有属性会保存两份值。其它的仅仅有一个属性值!那么以下这个都是$o对象。为什么会存在两个属性?原因在以下进行备注
$o = new B;
$o->sayB();
echo '<hr>';
$o->sayA();
/**
原因就是,php在对对象的私有属性进行保存时,没有重写情况,同一时候保存了全部的私有属性(即使同名),同一时候记录下了该私有属性所属类!
私有属性会出现,同名属性不同值的情况!
*/
面向对象中private理解的更多相关文章
- [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
javascript面向对象编程方式,对于初学者来说,会比较难懂. 要学会面向对象以及使用面向对象编程,理解对象的创建在内存中的表示,至关重要. 首先,我们来一段简单的对象创建代码 var obj = ...
- 第35节:Java面向对象中的多线程
Java面向对象中的多线程 多线程 在Java面向对象中的多线程中,要理解多线程的知识点,首先要掌握什么是进程,什么是线程?为什么有多线程呢?多线程存在的意义有什么什么呢?线程的创建方式又有哪些?以及 ...
- jQuery闭包之浅见,从面向对象角度来理解
本篇的标题虽然是"jQuery闭包之浅见...",但实际上本篇涉及的多半是javascript"闭包"相关内容,之所以写这个标题,完全是因为自己平常用jQuer ...
- PHP中的面向对象 中的类(class)
2.11 上午讲的是面向对象中的类(class),一个非常抽象的概念, 类里面成员的定义有 public$abc; private$abc(私有变量): protect $abc(受保护的变量): 下 ...
- 以SqlHelper为例论面向对象中封装的使用
引言: 在使用面向对象方法编写的程序中,会有一些工具类,如Utility,xxHelper等. 比如1)操作数据库的过程,一般步骤都是:1.准备数据库地址.表名等信息:2.建立连接:3.准备要执行sq ...
- 【Java基础】面向对象中
面向对象中 这一章主要涉及面向对象的三大特征,包括封装.继承.多态.(抽象). 封装 程序设计追求"高内聚,低耦合": 高内聚 :类的内部数据操作细节自己完成,不允许外部干涉: 低 ...
- 03.JavaScript 面向对象精要--理解对象
JavaScript 面向对象精要--理解对象 尽管JavaScript里有大量内建引用类型,很可能你还是会频繁的创建自己的对象.JavaScript中的对象是动态的. 一.定义属性 当一个属性第1次 ...
- PHP面向对象编程——深入理解方法重载与方法覆盖(多态)
什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对 ...
- php面向对象中static静态属性和静态方法的调用
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态 ...
随机推荐
- MySQL监控、性能分析——工具篇
https://blog.csdn.net/leamonjxl/article/details/6431444 MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性 ...
- hibernate4.3.10环境搭建
1.首先还是引入所须要的包 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFC ...
- nginx学习笔记(四)-----日志切割脚本及定时任务
一.日志切割脚本 #!/bin/sh #nginx目录 BASE_DIR=/usr/local/nginx #生成的日志 BASE_FILE_NAME=jonychen.access.log CURR ...
- JS模板语言不错的脚本
<html> <script src="template.js"></script> <head> </head> &l ...
- TFS2012强制解除迁出(数据库操作方式)
同事离职,有个文件被迁出,查了好多资料终于解决. 在数据库中找到对应项目名字的数据库,例如Tfs_Project,记得先备份,保证删错了也能恢复~ 然后施行下列sql语句: --找到项目所在库 use ...
- Linux系统重装与还原
当初第一次装ubuntu系统时,对文件系统的构成还不太了解,所以在分区的时候给home的分区特别小,导致后期软件都装不进去.说磁盘已满.所以想对系统又一次分区. 上网找了资料,都说用GParted这个 ...
- 解决"libc.so.6: version `GLIBC_2.14' not found",系统的glibc版本太低 {强行安装!!}
原创,转载请注明出处,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 首先查看系统glibc支持的版本: strings /lib64/libc.so.6 |grep G ...
- adb shell settings 控制安卓系统设置(转)
Android4.2的源码android-17\com\android\commands目录下较之前的版本多了一个settings命令,查看其中的SettingsCmd.java文件,末尾有命令的帮助 ...
- CMake 基本用法--写CMakeList.txt
http://techbase.kde.org/Development/Tutorials/CMake_(zh_CN) http://www.cmake.org/Wiki/CMake 这一章将从软件开 ...
- Javascript获取当月的天数
var d = new Date(); var curMonthDays = new Date(d.getFullYear(), (d.getMonth() + 1), 0).getDate(); a ...