php怎么写重写?php方法重写介绍
发布:smiling 来源: PHP粉丝网 添加日期:2018-07-12 20:08:04 浏览: 评论:0
方法的重写/方法的覆盖(override),当一个父类知道所有的子类都有一个方法,但是父类不能确定该方法究竟如何写,可以让子类去覆盖这个方法,具体用法如下:
- <?php
- //抽象一个Animal类
- class Animal{
- public $name;
- protected $price;
- function cry(){
- echo "不知道动物怎么叫..";
- echo "
- ";
- } //phpfensi.com
- }
- class Dog extends Animal{
- //覆盖父类中的 cry()方法
- function cry(){
- echo "小狗汪汪叫..";
- echo "
- ";
- }
- }
- class Pig extends Animal{
- //覆盖父类中的 cry()方法
- function cry(){
- echo "小猪哼哼叫..";
- echo "
- ";
- }
- }
- //创建一个只狗
- $animal=new Animal();
- $animal->cry();
- $dog1=new Dog();
- $dog1->cry();
- $pig1=new Pig();
- $pig1->cry();
- ?>
关于方法重写细节讨论:
方法重写就是子类有一个方法,和父类的某个方法的名称、参数个数一样,那么我们就说子类的这个方法重写了父类的那个方法。
1.要实现重写,要求 子类的那个方法的名字和参数个数一摸一样,但是并不要求参数的名称一样.
2.如果子类要去调用父类的某个方法(public / protected) 则可以使用 parent::方法名(参数..) , 父类名::方法名(参数...)
3.在实现方法覆盖的时候,访问修饰符可以不一样,但是必须满足:子类的访问范围>=父类的访问范围
注意:当父类的函数为私有(private)类型时,不能覆盖,因为父类为私有该函数根本不能继承,代码如下:
多态体现在什么地方?
- class Animal{
- public function cry(){
- echo '动物叫唤..';
- }
- }
- class Cat extends Animal{
- public function cry(){
- echo "abc";
- }
- }
- $cat1=new Cat();
- $cat1->cry();
当子类没有覆盖父类的方法则 $cat1->cry() 调用的是父类,当 子类覆盖了父类的方法,则调用自己的cry()
Tags: php重写 php方法
相关文章
- ·php怎么打开重写 php重写URL的教程(2018-07-12)
- ·php 页面之间变量传递方法总结(2014-08-05)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)