PHP面向对象的程序设计继承--php高级最详细教程

原创 2016年08月30日 22:36:25

PHP面向对象的程序设计 原创



继承


概念:


就是用子类"扩展"父类
他也是面向对象的三大特性之一


优点:


1.开放性、可扩充性
2.增加代码的重用性
3.提高软件的可维护性


其他语言比较:


C++属于多继承,同一个类可以有多个父类
PHP和Java属于单继承,同一个类只能有一个父类


设计理念:


只要你在设计两个类时,有可以共享的成员,就将可以共享的内容拿出来,单独作为一个基类使用


继承规则:


父类 == 基类
子类 == 派生类
1.PHP属于单继承,同一个类只能有一个父类
2.不能继承多个类,但是可以被多个类继承
3.可以多层继承 C继承B  B继承A  这样是可以的  那么C里面就有了ABC三个类里面所有的东西
4.访问权限只能扩大,不能缩小 父类中,如果是protected  子类中只能是 protected 或者 public 
5.访问范围:不仅仅是子类可以访问父类中的属性和方法,父类也可以访问子类的属性和方法 *当然,私有属性除外
6.public 或者 protected 修饰的属性,如果在子类中有同名的属性,会被重写,不管写在父类还是子类中的方法,访问这个属性,都是被重写之后的值
7.private 属性  如果子类中出现同名的方法,不会重写父类中的这个属性,因为这个私有的属性对子类不可见
 一旦出现private修饰的属性,那么你的方法出现的位置就有讲究了
8. 访问不存在的方法,报错  .   访问不存在的属性,输出null
9.子类中给一个不存在的属性直接赋值,会动态的创建一个属性,并且赋值。动态创建的属性都是public


 * 一、类继承的应用
 *
 * 1. 声明一个子类,使用 extends 关键字 去继承(扩展)一个父类
 *
 * 2.  子类可以从父类,继承所有的内容,包括成员属性,成员方法, 构造方法 ..., 在子类中都可以直接使用
 *
 * 3. 父之间的层次关系设计好


二、访问类型控制
 * 虽然子类可以从父类中继承所有内容,但private的成员, 只能在本类中使用, 子类中也不能使用
 *
 * 封装时,即可以让自己类的内部可以访问,也让子类可以用,但类的外部不能使用, private --> protected


* 三、子类中重载父类的方法
 *
 *   1. 子类可以声明和父类相同的方法名,即子类覆盖了父类中同名的方法
 *
 *   鸟类---鸵鸟(飞方法), 在鸵鸟类中将 “飞的方法改写”
 *
 *   子类的方法对父方法的扩展
 *
 *   在子类中 调用 父类中 被覆盖的方法  
 *
 * 对象->成员  类::成员
 *
 *   父类名::方法名()
 *   parent::方法名()
 *
 *
 *   在子类中编写构造方法,如果父中也有构造方法一定要去调用一次父类中被覆盖的那个构造方法
 * 
 *   注意: 子类中重载的方法,不能低于父类中访问权限, (子类可以访大权限,但不能缩小权限)


实例:
 class Person1 {
protected $name;
protected $age;
protected $sex;


function __construct($name, $age, $sex){
$this->name=$name;
$this->sex=$sex;
$this->age=$age;


echo "###################<br>";
}




protected function say(){
echo "我的名-{$this->name}:,我的年龄:{$this->age},我的性别:{$this->sex}.<br>";
}


function eat(){
echo "wwwwwwwwwwwwwwww";
}


function run(){

}
  }


  class Student extends Person1 {
 var $school;
function __construct($name, $age, $sex, $school){
parent::__construct($name, $age, $sex);
$this->school=$school;
}
function study(){
echo "{$this->name}在学习.<br>";

$this->eat();
}


public function say(){
parent::say();
echo "我所在的学校{$this->school}<br>";
}
  
  }


  $s=new Student("lisi", 20, "男", "QingHua");


//  $s->say();



版权声明:本文为博主原创文章,未经博主允许不得转载。

PHP面向对象的程序设计多态--php高级最详细教程

PHP面向对象的程序设计 原创 多态 抽象类 抽象类 接口 多态 抽象类是一种特殊的类,接口是一种特殊的抽象类,而多态就要使用到抽象类或接口 抽象类: 什么是抽象方法?  定义:如果一...
  • wulove52
  • wulove52
  • 2016年08月30日 22:38
  • 692

PHP面向对象的程序设计封装--php高级最详细教程

PHP面向对象的程序设计 前言:           PHP5正式版本的发布,标志着一个全新的PHP时代的到来。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下兼容性。程序员不必再...
  • wulove52
  • wulove52
  • 2016年08月30日 22:32
  • 2123

PHP面向对象的程序设计关键字--php高级最详细教程

PHP面向对象的程序设计关键字 原创 关键字 final final不能修饰成员属性(类中声明常量不是用这个词,与JAVA不同) final只能修饰类和方法 作用: 使用final修饰的类...
  • wulove52
  • wulove52
  • 2016年08月30日 22:42
  • 480

PHP的面向对象编程思想

这篇文章介绍了在PHP中的面向对象编程(OOP,Object Oriented Programming)。同时演示了如何通过使用一些OOP的概念和PHP的技巧来减少编码和提高质量。PHP 是一个混合型...
  • qq_34275925
  • qq_34275925
  • 2016年06月20日 10:45
  • 3538

谈谈我对php中面向对象的理解

转载自:http://www.php.cn/php-weizijiaocheng-372376.html 今天来和大家介绍一下PHP的面向对象。说到面向对象,我不得不提一下面向过程,因为本人在初学时...
  • wang544831183
  • wang544831183
  • 2017年08月17日 12:43
  • 248

php学习笔记 PHP面向对象的程序设计

/* PHP面向对象的程序设计 * * PHP5 * * 数组和对象:都属于PHP的复合类型(一个变量可以存储多个单元) * * 对象比数组更强大,不仅可以存储多个数据,还可以...
  • nyfcpeng
  • nyfcpeng
  • 2011年08月08日 16:40
  • 106

php面试题之一——PHP核心技术(高级部分)

一、PHP核心技术 1.写出一个能创建多级目录的PHP函数(新浪网技术部) /** * 创建多级目录 * @param $path string 要创建的目录 ...
  • s1070
  • s1070
  • 2016年04月17日 19:22
  • 18201

命令空间--php高级最详细教程

php命令空间 原创
  • wulove52
  • wulove52
  • 2016年08月30日 22:27
  • 442

smarty模板引擎--php高级最详细教程

Smarty(模板引擎) 原创 一、什么是模板引擎? Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同...
  • wulove52
  • wulove52
  • 2016年08月30日 22:30
  • 7026

PHP高级工程师的面试题

1. 基本知识点 HTTP协议中几个状态码的含义:1xx(临时响应) Php代码   表示临时响应并需要请求者继续执行操作的状态代码。      代码   说明   ...
  • jt521xlg
  • jt521xlg
  • 2015年08月19日 11:28
  • 7370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP面向对象的程序设计继承--php高级最详细教程
举报原因:
原因补充:

(最多只允许输入30个字)