php extends parent,PHP parent关键字和方法的覆盖

1、parent关键字

parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。

74d0f06990a6be832b613dfa0f5475cd.png<?php

//final class dog{//如果在类前面加final,它就不会被子类所继承

class dog{

//var $name;

//private:私有的    把var 改成private

//private $name;  外部(类之外)是调用不出来访问不了的(包括子类也是访问不了)

//protected $name; //也是(类之外)外部是调用不出来访问不了的(这个子类可以访问)

//public $name;  //public 公开的  这个是可以访问

var $name; //如果var声明,默认的是public

//php 将所有以__(两个下划线)开头的类方法保留为魔术方法。

//所以在定义类方法时,除了魔术方法,建议不要以__为前缀

//construct 构成;建造   构造函数声明必须是__construct()

function __construct($n){

$this->name = $n;

}

final function bark(){  //final 类不想被其它类继承,声明为final   其它函数不想被继承也可以final声明

echo $this->name."wang";

}

}

//habadog继承dog   右以用关键字extends来声明继承关系

class habadog extends dog{ //继承类dog的属性和方法过来

function __construct(){

//"test" 因为上面的父类里是带能数的,所以随便(什么都行)传个参数进去,

parent::__construct("test");  //parent::调用父类的属性(静态)和方法,也经常用于调用父类的构造函数

//加上这个parent::上面的__construct($n)带参数构造函数的$n就不会出错

// parent::主要用于调用带参数(或不带参数)的构造函数

}

}

$haba = new habadog();

$haba ->name="哈巴狗";

echo $haba->bark();

//输出结果  哈巴狗wang

//$mydog = new dog("zhangsan");

//$mydog->name = "facai";

//$mydog->bark();

?>

2、方法的覆盖

7c6b6ceb2c19a9fe3b18a74bc8327b80.png<?php

class dog{

public $name;

public function __construct(){

echo "测试输出的内容
";

}

public function bark(){

echo "父类的bark";

}

}

class haba extends dog{

public function bark(){

echo "继承的内容";

}

}

$haba = new haba();

$haba->bark();

//输出结果   测试输出的内容  继承的内容

//方法的覆盖:比如:bark()方法名相同:子类的方法,会把父类的方法覆盖

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值