php能否继承,php 继承

直接看代码和注释吧

// private只能在类中访问// protected只能在类中和子类中访问// public 可以在任何地方访问

class Father

{

public $name = '郭靖'; // 名字

private $wife = '黄蓉'; // 老婆

protected $money = 5000; // 财产

// 做饭任何人都可以教

public function cook()

{

echo '做饭';

}

// 功夫只传儿子

protected function gongfu()

{

echo '降龙十八掌';

}

// 偷东西这事不能传儿子

private function steel()

{

echo '不要脸的偷东西';

}

}

class Son extends Father

{

public function callGongfu()

{

$this->gongfu(); // 在内部使用父类继承过来的方法

}

public function callSteel()

{

// $this->steel(); // 不能继承父类私有方法

}

public function callFatherProperty()

{

echo $this->name;

echo $this->money;

// echo $this->wife; // 不能继承

}

}

$son = new Son();

$son->cook();

//$son->gongfu(); //继承成功,调用失败,protected只用在类内部使用

//$son->steel(); // 继承失败,调用失败,private 不能被继承

$son->callGongfu(); // 调用成功 说明protected可以在类内部使用

$son->callFatherProperty();

//var_dump($son);

final 修饰的类不能被继承

单独设置一个抽象类是没有意义的,只有有了抽象方法,抽象类才有了血肉。下面介绍抽象方法。

abstract 抽象方法

用abstract修饰的类表示这个方法是一个抽象方法。

抽象方法,只有方法的声明部分,没有方法体。

抽象方法没有 {} ,而采用 ; 结束。

一个类中,只要有一个抽象方法,这个类必须被声明为抽象类。

抽象方法在子类中必须被重写

abstract class User {

abstract public function eat();

public function play() {

echo 'user play'.'
';

}

}

//new User() // 不能实例化

class NormalUser extends User {

public function eat() {

echo 'normal user eat'.'
';

}

}

$normalUser = new NormalUser(); // 可以实例化

$normalUser->play();

$normalUser->eat();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值