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

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

PHP面向对象的程序设计 原创 继承 概念: 就是用子类"扩展"父类 他也是面向对象的三大特性之一 优点: 1.开放性、可扩充性 2.增加代码的重用性 3.提高软件的可维护性 ...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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

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

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

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

面向对象程序设计——继承

继承是面向对象程序设计的主要特点之一。继承,顾名思义就是子继承父的所有。在面向程序设计中继承的意思并没变,子类继承父类所拥有的属性、方法。 使用extends关键字使子类继承父类,子类就可以自动复用...

PHP 面向对象化程序设计

<?php/* PHP 面向对象化程序设计 PHP5 开始引入面向对象的所有机制 数组和对象都属于复合类型(一个变量可以存储多个单元或元素) 对象的三大特性:封装、继承、多态 对象包含属性和方法 ...

《Javascript高级程序设计》面向对象的程序设计

面向对象的JavaScript

php面向对象(OOP)—类的继承

通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类以及超类。由已存在的类派生出的...

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

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

学习PHP面向对象(六)继承

先看一个例子:  复制代码代码如下: class Pupil{  public $name;  protected $age;  public function getinf...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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