php面向对象怎么继承,php面向对象之继承

这篇文章主要介绍了关于php面向对象之继承,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下继承

定义

子类继承父类所有的——公有(public) 和 受保护(protected)属性和方法。

使用关键字extends继承,一个类集成另一个,不能继承多个。

相关专业名词子类、父类、基类、超类、派生类

子类、派生类 ——> 继承于基类的类;

父类、基类、超类指 ——> 被继承的类。

例子<?php

class Father

{

public $a = 'public';

protected $b = 'protected';

private $c = 'private';

public function func1()

{

echo 'This is public function','
';

}

protected function func2()

{

echo 'This is protected function','
';

}

private function func3()

{

echo 'This is private function','
';

}

}

// 继承父类

class Child extends Father

{

// 子类中调用继承来的方法

public function test()

{

$this -> func1();

$this -> func2();

//$this -> func3(); 私有方法不可以调用

}

}

// 实例化子类

$son = new Child();

// 尝试调用属性

echo $son -> a,'
';

//echo $son->b; 不能直接输出b

//echo $son -> c; 继承都没继承,当然不能输出

// 尝试调用方法

//$son -> func1();

//$son -> func2(); 不能在类外调用func2

//$son -> func3(); 继承都没继承,当然不能调用

// 间接调用继承自父类的普通方法

$son -> test();重写

定义:

1)继承父类的方法,子类中定义与父类同名的方法,且参数个数相同;

2)当子类重写父类中的方法时,php不会调用父类中被重写的方法;

3)是否调用父类的方法,取决于子类。

4)在实行方法覆盖的时候,访问修饰符可以是不一样的,但是子类的访问范围必须大于等于父类的访问范围。

使用:parent:: 访问父类中被重写的属性和方法

例子<?php

class Father

{

public function shuo($num)

{

echo 'a a o o';

}

}

class Son extends Father

{

public function shuo($num)

{

// 调用父类中被重写的方法

// parent::shuo($num);

echo 'Hello World';

}

public function test($num)

{

parent::shuo($num);

}

}

// 实例化子类

$son1 = new Son();

$son1 -> shuo(1); // Hello World

$son1 -> test(1); // a a o ofinal关键字

如果父类中的方法被声明为final,则子类无法复写该方法。

如果一个类被声明为final,则不能被继承。

例子<?php

class Father

{

final public function test()

{

echo 'hello';

}

}

class Son extends Father

{

public function test()

{

echo '你好';

}

}

// 实例化子类

$son1 = new Son();

$son1 -> test(); // 报错,函数不能被重写

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值