博客列表 >OOP 面向对象方法的继承

OOP 面向对象方法的继承

梁凯达的博客
梁凯达的博客原创
2019年01月10日 22:27:05811浏览

实例

<?php

	//方法的继承(重写 重构)
	//1.子类里面的方法会覆盖父类中的同名方法
	//2.访问方法的时候 一定是最终结果 被子类覆盖后的结果 但是除了私有的以外
	//3.重写的时候建议参数结构(参数的个数,参数的默认值)保持一致
	//4.权限只能扩大  不能缩小
	//		父类 			子类
	//		public 			public
	//		protected		public protected
	//		private         public protected  private

	class A{
		private  function say($a=10){
			echo '我是他爹';
		}
		//访问方法的时候 一定是最终结果 被子类覆盖后的结果 但是除了私有的以外
		public function test(){
			$this->say();
		}
	}

	class B extends A{
		//子类里面的方法会覆盖父类中的同名方法
		public function say($b=20,$c=20){
			echo '他不是我爹';
		}
	}
	$obj = new B;
	//$obj->say();
	$obj->test();

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php

	//方法的继承(重写 重构)
	//1.子类里面的方法会覆盖父类中的同名方法
	//2.访问方法的时候 一定是最终结果 被子类覆盖后的结果 但是除了私有的以外
	//3.重写的时候建议参数结构(参数的个数,参数的默认值)保持一致
	//4.权限只能扩大  不能缩小
	//		父类 			子类
	//		public 			public
	//		protected		public protected
	//		private         public protected  private
	//5.可以调用父类中的方法 需要使用范围操作符 ::
	//A::say()   parent::say()  parent 代表的是父类		
	//注意要求: 重写构造方法的时候需要务必将第一个调用父类中的构造方法

	class A{
		public $name;
		public $city;
	
		public function __construct($name,$city){
			$this->name = $name;
			$this->city = $city;
		}
		public function say(){
			echo '各位以后没事的时候多看看书,看你自己感兴趣的就行 建议少看网络小说';
		}
	}

	class B  extends A{
		public $age;
		public $sex;
		public function __construct($name,$city,$age,$sex){
			//调用父类中的构造方法
			//A::__construct($name,$city);
			parent::__construct($name,$city);
			//parent 代表的就是你的父类
			// $this->name =$name;
			// $this->city = $city;
			$this->age = $age;
			$this->sex = $sex;
		}
		public function say(){
			parent::say();
			echo '你可以读读我们的四大名著 我比较喜欢看西游 因为他不是一个神话故事 他是一个职场故事 还有点厚黑的感觉';
		}
	}

	$obj = new B('孙悟空','花果山水帘洞','不详','石猴');
	var_dump($obj);
	$obj->say();

运行实例 »

点击 "运行实例" 按钮查看在线实例

 

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议