A类具有某些特征,B类具有A类的所有特征,同时还有自己独特的特征,此时我们就要用的继承.

几个概念

继承:一个类从另一个以后的类获得其特性,称为继承

派生:从一个已有的类产生一个新的类,称为派生

上述继承和派生只是在

单继承:一个类只能从一个上级类继承其特性信息。PHP不能多继承

扩展:在子类中在定义自己的一些新的特有的特性信息,如果不能扩展,继承就变得没有意义

访问(权限)修饰符

public:可以在任何环境下访问

protected:只能在该类或者子类中使用

private:只能在该类中使用

class jizhuidongwu{

public $prop1 = "有脊椎";

function show1(){

echo "
父类说特征:".$this->prop1;

}

function construct($p){

$this->$prop1 = $p;

}

}

class human extends jizhuidongwu{

public $prop2 = "两脚走路";

function show2(){

//子类调用父类的方法

parent::show1();

echo "
子类说特征:".$this->prop1;

echo "
子类说特征:".$this->prop2;

}

function construct($p1,$p2){

parent::__construct($p1);

$this->$prop2 = $p2;

}

}

$p = new human("我是父类","我是子类");

$p -> show2();

?>

有构造方法子类继承有构造方法父类写法

写法1:重写父类构造方法,不再调用父类构造方法

class C{

public $p1 = 1;

function __construct($p1){

$this -> p1 = $p1;

echo "
父类构造方法";

}

}

class D extends C{

public $p2 = 2;

function __construct($p1,$p2){

$this->p1 = $p1;

$this->p2 = $p2;

echo "
子类构造方法";

}

}

$d1 = new D(20,30);

?>

输出结果:子类构造方法

写法2:传值到父类的构造方法,会调用父类构造方法

class C{

public $p1 = 1;

function __construct($p1){

$this -> p1 = $p1;

echo "
父类构造方法";

}

}

class D extends C{

public $p2 = 2;

function __construct($p1,$p2){

parent::__construct($p1);

$this->p2 = $p2;

echo "
子类构造方法";

}

}

$d1 = new D(20,30);

?>

输出结果:

子类构造方法

父类构造方法

重写

从父类继承下来的属性或方法重新"定义"。

访问控制权限

父类public 子类只能public ,父类protected 子类可以public,也可以protected,子类只能和父类的全向相同,或者比父类更加"开放"。父类中的private,子类无法获取,无从谈起继承。

参数形式

父类方法如果有参数,子类若想覆盖父类方法,必须也带有参数,数量也必须一样。构造方法比较特殊,子类参数只能和父类相同或者比父类多。

最终类final class

一个类没有特殊声明,就可被别的类继承,但是如果声明为最终类,则不能被继承

final class 类名{

//code

}

最终方法finalmethod

一个方法没有特殊声明,则下级类可以对其进行重写,但是如果声明为最终方法,则不能被重写

final function 方法名(){

//code

}

php继承 重写方法吗,PHP中的继承与重写相关推荐

  1. 7种方法实现ES5中的继承

    7种方法实现ES5中的继承 1.借用构造函数继承父类属性 步骤 实现示例 优缺点 2.利用原型对象继承父类方法 步骤 实现示例 优缺点 3.组合继承 步骤 实现示例 优缺点 4.寄生式继承 步骤 实现 ...

  2. java 继承 实现 会重写 方法吗_java 中继承,组合,重载,重写的实现原理 (转)...

    我们知道,继承,组合,重载,重写是java语言的面向对象实现的基本特征. 那么在java内部,究竟是如何实现这些面对对象的基本特征的呢? 继承和组合是面向对象中代码复用的主要实现方式,他们可以达到类似 ...

  3. php继承 重写方法吗,php中如何重写一个方法呢?

    摘要: 下文讲述php类中"重写方法"的方法简介,如下所示: 在php类中,有时候父级中原有的方法无法满足系统的要求时, 此时我们可以通过继承父类,在子类中重写父类的方法, 使其功 ...

  4. java继承的范例_Java范例中的继承

    java继承的范例 Inheritance in java is one of the core concepts of Object Oriented Programming. Java Inher ...

  5. 015——继承(来 , 看看Java中的继承关系)

    目录 继承 继承概述.使用继承的好处 什么是继承 使用继承的好处 继承后子类的特点? 案例演示 继承的设计规范.内存运行原理 继承的设计规范 为什么 内存运行原理 继承的特点 子类是否可以继承父类的构 ...

  6. java继承层次结构,在状态模式中实现继承层次结构 - java

    我有一个与此非常相似的设计: 这里的NewOrder,Registered&Granted都有通用方法AddOrderline()和Cancel(),因此将这两种方法重构为父类很容易. 当我要 ...

  7. java继承父类执行顺序_java中子类继承父类程序执行顺序问题

    Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分,它们的执行顺序相对来说比较简单,用程序也很容易验证.比如新建一个测试父类. public ...

  8. java中关于重写的说法_Java中有关“重载”和“重写”的说法正确的是()

    阅读以下技术说明及Java程序,将Java程序中(1)-(5)空缺处的语句填写完整.[说明]用创建Thread类的子类的方法实现多线程,判断一个数是否是素数.如果是,打印"是素数" ...

  9. java继承怎么老是出错_java中子类继承父类时总是出错怎么回?

    权限public > 包(package,默认,也就是什么权限修饰符都不加) > proteced > private 子类继承了父类的所有成员(这样说实际是不对的),但只能访问父类 ...

  10. 继承构造函数调用顺序_C ++中带有继承的构造函数调用的顺序

    继承构造函数调用顺序 Base class constructors are always called in the derived class constructors. Whenever you ...

最新文章

  1. 第 1 章 虚拟化 - 013 - 动手实践 Linux VLAN
  2. python时间序列分析航空旅人_时间序列分析-ARIMA模型(python)
  3. 别再傻傻地用这些软件G转P了,修复后不稳定的真相在这里
  4. softmax函数_数学证明深度学习激活函数从Softmax到Sparsemax
  5. 表格列求和_excel表格制作,Excel表格的基本操作,包含制作一个表格10方面的知识...
  6. KAFKA 最新版 Shell API单机生产与消费
  7. Shell字符串比较(等于、不等于、大于、小于、起始字符、结尾字符)
  8. java intent 传递集合对象_Android系列之Intent传递对象的几种实例方法
  9. 使用jQuery的插件qrcode生成二维码(静态+动态生成)及常见问题解决方法
  10. 第八届蓝桥杯第八题日期问题
  11. 网站域名过户查询_聚查教你怎么用域名批量查询工具查询网站历史和域名权重...
  12. springboot(五) 加载配置文件优先级顺序
  13. react-native6.0版本xcode11.2版本ios报错Unrecognized font family 'Ionicons'
  14. 【LeetCode】求众数(四种方法)
  15. 干货|爬虫被封的几个常见原因
  16. 简易的JavaScript文字跟随鼠标移动特效
  17. ObjectBox的探究
  18. Java 方法参数传递
  19. 记-玩吧-一次失败的面试
  20. 如何下架自己的 APP(APP Store)

热门文章

  1. 20191204每日一句
  2. 黑马程序员 Python学习笔记之 判断(if)语句
  3. Atitit 外观ui调整法 表单与表格列表
  4. Atitit snownlp nlp 常见功能 目录 1.1. 主要功能: 1 1.2. 官网信息: 2 1.3. # 自动摘要 vs 关键词提取 2 1.4. Tf idf算法 2 1.5. p
  5. Atitit 迭代法  “二分法”和“牛顿迭代法 attilax总结
  6. atitit.团队建设总结fx O622
  7. paip.互联网产品要成功的要素
  8. 从 CTA 趋势策略的表现看量化投资面临的挑战
  9. 投资62笔!私募巨头凯雷的“中国生意经”
  10. (转F001) Rust : 解引用,自动解引用