失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php面向对象全攻略 (七) 继承性

php面向对象全攻略 (七) 继承性

时间:2021-07-03 12:02:01

相关推荐

php面向对象全攻略 (七) 继承性

php教程|php手册

php,面向,对象,全攻略,七,继承性,11.类,继承,作为,面向,对象,三个,重要,特,性一个方面,在,领域,

php教程-php手册

11.类的继承

继承作为面向对象的三个重要特性的一个方面,在面向对象的领域有着极其重要的作用,

好像没听说哪个面向对象的语言不支持继承。继承是PHP5 面向对象程序设计的重要特性之

一,它是指建立一个新的派生类,从一个或多个先前定义的类中继承数据和函数,而且可以

重新定义或加进新数据和函数,从而建立了类的层次或等级。说的简单点就是,继承性是子

类自动共享父类的数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的

时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为

自己的内容,并加入若干新的内容。比如你现在已经有一个“人”这个类了,这个类里面有

两个成员属性“姓名和年龄”以及还有两个成员方法“说话的方法和走路的方法”,如果现在

程序需要一个学生的类,因为学生的也是人,所以学生也有成员属性“姓名和年龄”以及成

员方法“说话的方法和走路的方法”,这个时候你就可以让学生类来继承人这个类,继承之后,

学生类就会把人类里面的所有的属性都继承过来,就不用你再去重新声明一遍这些成员属性

和方法了,因为学生类里面还有所在学校的属性和学习的方法,所以在你做的学生类里面有

继承自人类里面的属性和方法之外在加上学生特有的“所在学校属性”和“学习的方法”,

这样一个学生类就声明完成了,继承我们也可以叫做“扩展”,从上面我们就可以看出,学生

类对人类进行了扩展,在人类里原有两个属性和两个方法的基础上加上一个属性和一个方法

扩展出来一个新的学生类。

通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型

不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基

类,又称为父类以及超类。由已存在的类派生出的新类称为派生类,又称为子类。

在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分

类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。采用继承性,

提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重

用性。

在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。

但是在PHP 和Java 语言里面没有多继承,只有单继承,也就是说,一个类只能直接从

一个类中继承数据,这就是我们所说的单继承。

例如:

下面是“人”类的抽象

代码片段

电脑壁纸网站源码 自动采集,vscode如何设置右键,Ubuntu编译dll,tomcat连接关闭,夏天爬虫,php 判断首页,宿州seo推广价格优惠,传奇简单网站模板下载安装,网页在线聊天模板lzw

复制代码 代码如下:

植物大战僵尸外挂源码,vscode去掉换行符,ubuntu apt列表,改用tomcat归档版,北京鲲鹏 爬虫,php 三级返利,南京seo排名优化公司推荐lzw

//定义一个“人”类作为父类

class Person{

//下面是人的成员属性

var $name; //人的名子

var $sex; //人的性别

var $age; //人的年龄

//定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值

function __construct($name, $sex, $age){

$this->name=$name;

$this->sex=$sex;

$this->age=$age;

}

//这个人可以说话的方法, 说出自己的属性

function say() {

echo “我的名子叫:”.$this->name.” 性别:”.$this->sex.” 我的年龄是:”.$this->age.”

“;

}

}

百思不得姐app 源码,ubuntu16 ums,怎么使用tomcat.9,法国爬虫人,php网站外包有哪些,大良seolzw

下面我们做一个“学生类”,如果不是用继承如下:代码片段

复制代码 代码如下:

//定义一个“人”类做为父类

class Student{

//下面是人的成员属性

var $name; //人的名子

var $sex; //人的性别

var $age; //人的年龄

var $school; //学生所在学校的属性

//定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值

function __construct($name=””, $sex=””, $age=””, $school=””){

$this->name=$name;

$this->sex=$sex;

$this->age=$age;

$this->school=$school;

}

//这个人可以说话的方法, 说出自己的属性

function say() {

echo “我的名子叫:”.$this->name.” 性别:”.$this->sex.” 我的年龄是:”.$this->age.”

“;

}

//这个学生学习的方法

function study() {

echo “我的名子叫:”.$this->name.” 我正在”.$this->school.”学习

“;

}

}

//定义一个子类“学生类“使用”extends”关键字来继承”人”类

class Student extends Person{

var $school; //学生所在学校的属性

//这个学生学习的方法

function study() {

echo “我的名子叫:”.$this->name.” 我正在”.$this->school.”学习

“;

}

}

通过上面“Student”类的定义,Student 类通过使用“extends”这个关键字把Person 类

里的所有成员属性和成员方法都继承过来了,并扩展了一个所在学校成员属性“school”,和

一个学习方法“study()”。现在子类“Student”里面和使用这个类实例出来的对象都具有如下

的属性和方法:

学生类“Student”里面的成员属性有:

姓名:name;

年龄:age;

性别:sex;

学校:school;

学生类“Student”里面的成员方法有:

说话方法:say();

学习方法:study();

通过上面类继承的使用简化了对象、类的创建工作量,增加了代码的可重性。但是从上

面这一个例子上中“可重用性”以及其它的继承性所带来的影响,我们看的还不是特别的明

显,你扩展的去想一下,人有无数个岗位,比如上面的学生还有老师、工程师、医生、工人

等,很多很多,如果每个类都定义“人”都共同具有的属性和方法,想一想会有很大的工作

量,这些属性和方法都可以从“Person”人类里面继承过来。

如果觉得《php面向对象全攻略 (七) 继承性》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。