批改状态:合格
老师批语:你可以试着举一下不一样的案例, 这样有助于更好的理解
//父类class User{ //public:公开成员 类的继承上下文环境中//protected:受保护的成员,类外部禁止访问,类的内部以及它的继承上下文中可以访问//private:私有成员,只能在当前类访问public $name = '张三';protected $age = 50;protected $salary = 9999;public static $nationality = '中国/CHINA';//类中方法可以访问类中所有成员public function write(){return "姓名:{$this->name},年龄:{$this->age},工资:{$this->salary}";}}//子类class Rob extends User{//1.继承:父类的public和protected自动成为子类的成员//2.重写:覆写与父类同名的成员(属性和方法)//3.扩展:子类添加自身的方法来增加/扩展父类的功能//1.重写父类成员//属性重写public $name = '李四';//方法重写 在子类中引用父类成员用parent:: 如果想禁止方法重写在作用域public前加上final 如果想禁止整个类被重写在class前加finalpublic function write(){//return "姓名:{$this->name},年龄:{$this->age},工资:{$this->salary}.是一个摸金的~~~。";return parent::write().',是一个摸金的~~~。';}//2.扩展//属性扩展protected $profession = '摸金校尉';//方法扩展public function write1(){return parent::write().",职业:{$this->profession}。";}}$user = new User;echo $user->write().'<br>';$rob = new Rob;echo $rob->write().'<br>';echo $rob->write1();

//抽象类:部分分离了“设计与实现” abstract关键字//抽象类不能实例化abstract class User{protected $name = '张三';protected $age = 40;//方法有方法体public function write(){return "姓名:{$this->name},年龄:{$this->age}";}//没有方法体abstract protected function write1();}class Rob extends User{protected $profession = '普通职员';public function write1(){return parent::write()."职业:{$this->profession}";}}// $user = new User;// echo $user->write();$rob = new Rob;echo $rob->write1();

//接口:完全分离了设计与实现//关键字:interface//使用与类相似的语法:抽象方法,常量,构造方法//默认访问控制必须是public//1.单接口interface iUser{//接口常量const NATION = '中国';//接口方法public static function write();}//实现接口class User implements iUser{//接口中的抽象方法,必须在工作类中实现protected static $name ='张三';public static function write(){return self::$name.'的国籍是:'.iUser::NATION;}}//接口常量的访问与类常量一样 如果不想实例化那就把方法设置成静态方法echo User::write();
类的继承:public和protected子类可以继承所有父类中的属性和方法,但是private属性在子类中是不能被访问的。
类的扩展:子类中可以添加自己的属性和方法。
类的重写:父类中的属性和方法可以在子类中被重新定义。
抽象类是不可以被实例化的类,但是可以被继承,实现了设计和实现部分分离
接口中可以定义抽象方法(没有方法体的方法),普通类继承后必须重写并且实现该方法,实现了设计与实现完全分离
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号