`

面向对象设计 7 —— PHP5面向对象进阶(关键字 parent)

    博客分类:
  • PHP
PHP 
阅读更多
<?
//parent::关键字
/**
* PHP5中使用parent::来引用父类的方法。
* parent:: 可用于调用父类中定义的成员方法。
* parent::的追溯不仅于直接父类。
*/

//通过parent::调用父类方法
//声明一个员工类,经理类继承自员工类
class employee{
	protected $sal = 3000;
	public function getSal(){
		$this->sal = $this->sal + 1200;
		return $this->sal;
	}
}

class Manager extends employee{
	//如果想让经理在员工工资的基础上多发1500元
	//必须先调用父类的getSal()方法
	public function getSal(){
		parent::getSal();
		$this->sal = $this->sal + 1500;
		return $this->sal;
	}
}

$emp = new employee();
echo "普通员工的工资是 " . $emp->getSal();
echo "<br>";

$manager = new Manager();
echo "经理的工资是 " . $manager->getSal();

?>

<?
//父类的private属性
//Private属性是不能被继承的,如果父类有私有的属性。
//那么父类的方法只为父类的私有属性服务。

class employee{
	private $sal = 3000;
	public function getSal(){
		return $this->sal;
	}
}

class Manager extends employee{
	protected $sal = 5000;

	public function getParentSal(){
		//这里返回的是父类的private属性
		return parent::getSal();
	}
}

$manager = new Manager();
echo "PHP" . phpversion()."<br>";
//那么父类的方法只为父类的私有属性服务。
echo $manager->getSal();
echo "<br>";
echo "parent's \$sal ".$manager->getParentSal();
?>


<?
//如果父类中的属性被子类重写了。
class employee{
	protected $sal = 3000;
	public function getSal(){
		return $this->sal;
	}
}

class Manager extends employee{
	protected $sal = 5000;

	public function getParentSal(){
		//父类的protected属性已经被子类重写了
		return parent::getSal();
	}
}

$manager = new Manager();
echo "PHP" . phpversion()."<br>";

echo $manager->getSal();
echo "<br>";
echo "parent's \$sal ".$manager->getParentSal();
?>


<?
//子类中重写的方法对当前private有效。

class employee{
	private $sal = 3000;
	public function getSal(){
		return $this->sal;
	}
}

class Manager extends employee{
	private $sal = 5000;
	//重写父类的方法
	public function getSal(){
		return $this->sal;
	}
	public function getParentSal(){
		//这里返回的是父类的private属性
		return parent::getSal();
	}
}

$manager = new Manager();
echo "PHP" . phpversion()."<br>";

echo $manager->getSal();
echo "<br>";
echo "parent's \$sal ".$manager->getParentSal();
?>
分享到:
评论

相关推荐

    面向对象设计 6 —— PHP5面向对象进阶(关键字 this)

    面向对象设计是编程领域中的一个重要概念,特别是在PHP5中,它引入了丰富的面向对象特性,使得PHP成为了一种更加强大的面向对象编程语言。本文将深入探讨PHP5中的"this"关键字,它是面向对象编程中一个至关重要的...

    面向对象设计 4 —— PHP5面向对象进阶(属性的访问控制)

    这篇博客“面向对象设计 4 —— PHP5面向对象进阶(属性的访问控制)”着重讲解了如何在PHP5中通过访问控制来保护类的内部状态,确保代码的封装性和安全性。 在PHP5中,我们可以为类的属性设置三种访问修饰符:public...

    20140207PHP01_PHP面向对象程序设计.pdf

    根据提供的文档信息,本文将详细解析“20140207PHP01_PHP面向对象程序设计.pdf”中关于PHP面向对象程序设计的关键知识点。 ### 面向对象概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它...

    PHP面向对象学习之parent::关键字

    在PHP中不能定义重名的函数,也包括不能再同一个类中定义重名的方法,所以也就没有方法重载。下面这篇文章主要给大家介绍了PHP面向对象之parent::关键字的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

    PHP5中的this self和parent关键字详解

    ### PHP5中的this、self与parent关键字详解 在PHP编程语言中,`this`、`self`和`parent`这三个关键字对于理解类的内部工作原理以及如何在继承中正确使用类成员至关重要。下面将详细解释这三个关键字的意义及其用法...

    php简单面向对象的网站例子

    面向对象的三大特性——继承、封装和多态性,在PHP中也有很好的支持。 - **继承**:允许一个类(子类)继承另一个类(父类)的属性和方法。在PHP中,子类通过`extends`关键字实现继承。例如,我们可以创建一个`...

    面向对象的编程思想.rar

    在PHP这样的面向对象编程语言中,可以使用class关键字来定义类,用function关键字定义方法,用public、private、protected等关键字控制访问权限,使用extends关键字实现继承,使用interface关键字定义接口,使用__...

    php面向对象_刀客

    PHP从版本5开始全面支持面向对象编程,为开发者提供了丰富的特性,如类、对象、继承、封装、多态等。下面我们将深入探讨这些核心概念,并结合“PHP5_OO_刀客羽朋”这个主题,理解其在实际项目中的应用。 首先,我们...

    php面向对象(类)教程

    本文将基于"php面向对象(类)教程"这一主题,深入探讨PHP中的面向对象编程(Object-Oriented Programming, OOP)概念,帮助初学者理解和掌握这一核心技能。 面向对象编程是一种编程范式,它通过类和对象来组织代码...

    php面向对象初步入门教程pdf版

    **PHP面向对象初步入门教程** 本教程主要针对初学者,旨在提供PHP面向对象编程的基本概念和实践技巧。PHP是一种广泛使用的服务器端脚本语言,尤其适用于Web开发,并且支持面向对象编程(OOP)。OOP是软件开发的一种...

    深入PHP 面向对象 模式与实践(第3版).pdf

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它利用“对象”来设计软件。对象可以包含数据,以字段(通常称为属性或成员变量)的形式,以及代码,以方法(或函数)的形式。面向对象编程的...

    PHP的面向对象编程

    面向对象编程(Object Oriented Programming, OOP)是一种程序设计思想,它将数据和操作这些数据的函数封装在一起形成对象,通过对象之间的交互来实现软件功能。OOP的主要特性包括封装、继承和多态。 #### 二、PHP中...

    PHP面向对象 课程

    从PHP 5开始,它引入了完整的面向对象编程(Object-Oriented Programming,简称OOP)支持,使得PHP开发者能够利用面向对象的特性,如封装、继承、多态性,来构建更加复杂且易于维护的代码结构。 **面向对象的基本...

    PHP5面向对象编程

    PHP5是PHP语言的一个重大升级,引入了完整的面向对象特性,使得PHP从一个主要用于脚本语言的角色转变为能够处理复杂应用程序的工具。这篇教程的目标是帮助初学者和有经验的开发者更好地理解和应用PHP5的面向对象特性...

    PHP5面向对象开发教程第一章-PHP5面向对象基础

    在本教程中,我们将深入探讨PHP5中的面向对象编程(OOP)基础知识。面向对象编程是一种编程范式,它基于“对象”的概念,允许我们创建更复杂、可维护且易于扩展的代码。PHP5引入了全面的面向对象支持,使得这种编程...

    过程式设计和面向对象设计的比较.pdf

    过程式设计和面向对象设计是软件工程中的两种基本的设计方法论,它们各自有不同的原则、结构和适用场景。以下是对过程式设计和面向对象设计比较的详细知识点介绍。 过程式设计(Procedural Design): 1. 定义:...

    PHP高级进阶教材(详细版).doc

    《PHP高级进阶教材(详细版)》是一本专为IT精英设计的进阶学习教材,旨在帮助高级开发人员深入理解和掌握PHP5的核心概念和技术。本教材覆盖了PHP5的面向对象编程、LAMP架构的高级应用等多个重要知识点,旨在提升...

Global site tag (gtag.js) - Google Analytics