php面向对象之对象成员,静态成员,继承
16lz
2021-08-14
php面向对象之对象成员,静态成员,继承
类自定加载器
<?php
spl_autoload_register(function($className) {
echo $className."<br/>";
// $file = __DIR__.'\\controller\\'.str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';
$file = "..\\oop\\MyClass\\".str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';
if(!(is_file($file) && file_exists($file))){
throw new \Exception("类 - 文件名不合法或文件不存在");
}
require $file;
});
Person 类
<?php
class Person{
// 父类属性
public $Name;
private $Age;
protected $Job;
public static $Count;
// 父类构造方法
public function __construct($name,$age,$job){
$this->Name = $name;
$this->Age = $age;
$this->Job = $job;
}
function getAge(){
return $this->Age;
}
function setAge($age){
$this->Age = $age;
}
function show(){
echo "这是父类Person的show方法<br />";
}
}
Man类,继承自Person
<?php
class Man extends Person{
//子类自有属性
public $Shenggao;
//重写父类构造方法
public function __construct($name,$age,$job,$shengao){
parent::__construct($name,$age,$job);
$this->Shenggao = $shengao;
self::$Count += 1;
}
// 重写父类show方法,同时调用父类的show方法
public function show(){
parent::show();
echo '这是子类重写父类show方法';
}
public function staticCount(){
echo '这是静态Person类的静态属性值:'.self::$Count;
}
}
Client
<?php
require 'autoLoad.php';
$liu = new Man("刘德华",59,"歌手演员",180);
$zhang = new Man("张学友",56,"歌手演员",182);
$liu->show();//父类的show方法
echo '<pre>';
var_dump($liu);
var_dump($zhang);
// 通过对方访问方法,访问父类私有属性
$liu->setAge(60);
echo '通过对方访问方法,访问父类私有属性:'.$liu->getAge();
echo '<br />';
echo $liu->staticCount();
更多相关文章
- 作业内容:oop基础:请举例实例演绎以下难点 1. 类(对象抽象化的结
- 快递100账户错误详解-接口账号,业务,增值服务,票据和其他常见问
- 快递100参数错误-面单类错误(电子面单/发货单/模板)常见问题和解
- 调用快递100接口物流信息错误常见问题和解决方法
- 类与对象的概念,类与对象的特点及构造函数
- RAID5常见故障介绍及raid5故障后常规操作方法
- 面向对象编程(oop)初体验
- 0805 一.将数组的偶数去出, 二.尝试实现计算器功能
- 抖音用户评论和ID的采集方法