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面向对象的程序设计 原创 多态 抽象类 抽象类 接口 多态 抽象类是一种特殊的类,接口是一种特殊的抽象类,而多态就要使用到抽象类或接口 抽象类: 什么是抽象方法?  定义:如果一...

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

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

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

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

PHP面向对象的程序设计

  • 2013年03月07日 11:41
  • 608KB
  • 下载

个人PHP学习笔记(五)--面向对象的程序设计

目录 基本语法 语句结构 函数 数组 面向对象的程序设计 字符串 正则表达式 常用函数 文件系统 图形图像处理 MySQL数据库 Cookie&Session 错误和异常 面向对象的程...

PHP面向对象的程序设计(概述)

PHP5  面向对象的概述 一、面向对象的特性 数组和对象:都属于PHP的符合类型(一个变量可以存储多个单元); 对象比数组更强大,不仅可以存储多个数据,还可以将函数存在对象; 对象的三大...

php面向对象详细教程(完整版)

  • 2009年05月24日 18:46
  • 3.61MB
  • 下载

PHP学习(十五)--PHP面向对象的程序设计

面向对象的介绍 面向对象程序设计(Object Orienten Programming, OOP)是一种计算机编程架构,OOP的一条基本原则是计算机及程序是由单个能够起到子程序作用的单元或对象组...

你不知道的JavaScript--Item37 面向对象高级程序设计

1. JS是基于原型的程序建立一个简单的面向对象的类。有属性,有方法。function Aaa(){ this.name = '小明'; } Aaa.prototype.showName = ...

面向对象高级程序设计基础知识回顾

综述:本章讲述Java面向对象技术的另外两个特点,多态和继承,以及由继承机制派生出来的接口技术和抽象类等概念。5.1 继承1)子类可以继承父类中权限设置为public,protected和defaul...
  • xdyzyh
  • xdyzyh
  • 2016年11月21日 21:45
  • 585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP面向对象的程序设计继承--php高级最详细教程
举报原因:
原因补充:

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