0605-类的继承、重写、parent、final
定义一个子类(man)
//定义一个类
class renlei{
var $name = '王五';
var $age = '';
var $sex = '';
var $todo = '';
function showInfo(){
echo '姓名:'.$this->name.'<br>年龄:'.$this->age.'<br>性别:'.$this->sex.'<br>做了什么:'.$this->todo;
}
function cself(){
return new self;
}
}
//定义一个继承于renlei类的类
class man extends renlei{ }
//实例化一个man类下的对象
$wbl = new man();
$wbl->showInfo();
父类和子类的关系:
1.子类继承父类的全部信息,同时可以扩展自己的特征信息;如果没有扩展,继承也就没有了意义
2.父类(基类) 派生 子类(派生类)。
3.单继承:一个父类可以有多个子类,但一个子类只能有一个直接父类(可以有多级父类--多级继承)。
类中成员的修饰符及作用范围:
|
范围 |
本类内 |
继承关系类内 |
类外 |
|
public |
可以 |
可以 |
可以 |
|
protected |
可以 |
可以 |
不可以 |
|
private |
可以 |
不可以 |
不可以 |
关键字:parent(parent::类成员):
parent通常用于在子类中调用父类的成员的时候使用,多数通常就是使用父类的“静态类”成员(因为parent代表的类,而非对象)
重写:override
定义:发生在继承里。将从父类继承下来的属性或方法重新“定义”
方法的参数形式:应该跟父类的一致(构造方法除外,可以不一致)。
私有属性和私有方法的重写问题:私有属性和方法都不能覆盖,但其实子类可以定义跟父类私有的同名属性或方法。只是当作一个自身的新的属性或方法来看待而已。不过方法的参数必须一致。
关键词:final
如果某个类不希望对其进行扩展,则可以将其声明为“最终类”。
形式:final class 类名{ 。。。。类定义。。。。}
如果某个方法不希望被下级类覆盖,就可以对其生命为“最终方法”。
形式:final function 方法名(){。。。。方法定义。。。。}
构造方法析构方法在继承中的表现:
1.子类中没有定义构造方法时,会自动调用父类的构造方法。因此实例化子类时,需按照父类的构造方法的形式进行(注意参数)。
2.子类定义了自己的构造方法,则不会自动调用父类的构造方法,但可以手动调用:parent::__construct();
//定义一个human类下的子类
class man extends human{
public $m1 = "" ;
//手动调用父类的构造方法
function __construct($name,$m1){
parent::__construct($name);
$this->m1 = $m1;
}
}
//实例化一个man类下的对象
$wbl = new man('xiaoming',18);
echo $wbl->name;
echo $wbl->m1;
0605-类的继承、重写、parent、final的更多相关文章
- JavaScript中的类式继承和原型式继承
最近在看<JavaScript设计模式>这本书,虽然内容比较晦涩,但是细品才发现此书内容的强大.刚看完第四章--继承,来做下笔记. 书中介绍了三种继承方式,类式继承.原型式继承和掺元类继承 ...
- php类的继承(基本概念,访问权限修饰符,重写override)
类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...
- 关于继承的基本知识,方法重写,final和abstract的使用, 动态绑定和静态绑定的知识
一.继承: 涉及关键字: extends(继承) super final abstract 特点: 1.类与类之间可以用 XX是XX来描述 , 那么他们之间就存在继承关系. 2.Java中不支持多继 ...
- C#和Java的类、继承、重写与多态
面向对象的三大特性是封装.继承.多态,C#和Java都是面向对象的语言所以他们的类.继承.重写与多态有很多共同点,但是实现上也存在一定的区别.其中Java中其实没有虚函数的概念,也可以认为Java的函 ...
- 2019-07-23 类的继承和final关键字的应用
我们称以存在的用来派生新类的类为基类,又称做父类,超类.由已存在的类派生出的新类称为派生类,又称为子类.从一个基类派生的继承称单继承,从多个基类派生的继承称为多继承.也就是说:一个类只能直接从一个类中 ...
- Objective-C 类的继承、方法的重写和重载
一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序.Objec ...
- Objective-c 类的继承 方法重写 方法重载
一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序. Obje ...
- 面向对象_05【类的继承:extends、重写父类】
类的继承:现有类的基础上构建一个新的类,构建出来的类被称作子类,子类可继承父类的属性和方法. 什么时候定义继承?当类与类之间存在着所属关系的时候,就定义继承.xxx是yyy中的一种==>xxx ...
- Java面向对象之继承,方法重写,super关键字,员工类系列继承题
在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...
- 序列化多表操作、请求与响应、视图组件(子类与拓展类)、继承GenericAPIView类重写接口
今日内容概要 序列化多表操作 请求与相应 视图组件 内容详细 1.序列化多表操作 模型类 models.py中 # 新建django项目 # 创建表 模型类models.py中: from djang ...
随机推荐
- dubbo之本地伪装
本地伪装 本地伪装 1 通常用于服务降级,比如某验权服务,当服务提供方全部挂掉后,客户端不抛出异常,而是通过 Mock 数据返回授权失败. 在 spring 配置文件中按以下方式配置: <dub ...
- Use emcli to delete obsolete agent targets in Oracle EM Cloud Control 12c
[oracle@oem ~]$ cd /oem/oms/oms/bin 登录到oms中 [oracle@oem bin]$ ./emcli login -username=sysman Enter ...
- POJ 2823 Sliding Window & Luogu P1886 滑动窗口
Sliding Window Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 66613 Accepted: 18914 ...
- 4.几个「不难但却很有用」的 Git 技能点
阅读 Git 原理详解及实用指南 记录 tag:不可移动的 branch tag 是一个和 branch 非常相似的概念,它和 branch 最大的区别是:tag 不能移动.所以在很多团队中,tag ...
- LINQ简记(2):重要概念
为了能让初学者更快速地掌握,在系列文章中,我尽可能地避开理论讲解,一则对于入门者来说,过多的理论叙述反而会降低大家学习编程的兴趣,二则,官方文档的资料很详细,我说了也是废话.因此,我会尽可能地多举些简 ...
- C#学习笔记_12_枚举&结构体
12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...
- Huawei-R&S-网络工程师实验笔记20190609-VLAN划分综合(Hybrid端口)
>Huawei-R&S-网络工程师实验笔记20190609-VLAN划分综合(Hybrid端口) >>实验开始,先上拓扑图参考: >>>实验目标:分别实现主 ...
- selenium等待
简介 在selenium操作浏览器的过程中,每一次请求url,selenium都会等待页面加载完成以后, 才会将操作权限在交给我们的程序. 但是,由于ajax和各种JS代码的异步加载问题,当一个页面被 ...
- JavaSE 学习笔记之异 常(十)
异 常: 异常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信 ...
- noip模拟赛 逃避
题目描述 给定一篇只含有大小写字母,空格以及 ′.′(不含引号)的长度为 L 的文章.文章被若干个 ′.′ 划分 成若干个句子,句子被若干个空格划分成单词.你需要将文章中每个句子第一个单词的首字母改成 ...