批改状态:合格
老师批语:类中这么多的成员这么多的类型, 应该怎么区分呢, 一定要注意
<?php//建立一个trait,添加一个格式化打印的方法trait tDemo{public function write(){//get_class_vars的作用是获取改函数名西门所有的属性$props = get_class_vars(__CLASS__);printf('<pre>%s</pre>', print_r($props,true));}public static function user(){return self::$name . 'user0的年龄是' . self::$age . ',邮箱是' . self::$email;}}//建立一个普通类,use trait tDemoclass User1{use tDemo;public static $name = '程东旭';public static $age = 30;public static $email = 'chengdongxu@php.cn';public static function user(){return self::$name . 'user1的年龄是' . self::$age . ',邮箱是' . self::$email;}}echo User1::user();(new user1) -> write();echo '<hr>';//一、实例演示类的三大功能:继承、重写、扩展//1、实例演示实现类的继承class User2 extends user1{use tDemo;public static $name = '韩伟';public static $age = 29;public static $email = 'hanwei@php.cn';}echo User2::user();(new User2) -> write();echo '<hr>';//2、实例演示实现类的重写class User3 extends user1{use tDemo;public static $name = '马飞';public static $age = 32;public static $email = 'mafei@php.cn';public static function user(){return self::$name . '的年龄是' . self::$age . ',邮箱是' . self::$email;}}echo User3::user();(new User3) -> write();echo '<hr>';//演示子类中方法级别大于trait,trait的级别大于父类class User0 extends user1{use tDemo;public static function user(){return self::$name . 'user3的年龄是' . self::$age . ',邮箱是' . self::$email;}}echo User0::user();(new User0) -> write();echo '<hr>';//3、实例演示实现类的扩展class User4 extends user1{public static $phone = 'apple';public static function user(){return self::$name . '的年龄是' . self::$age . ',邮箱是' . self::$email . ',用的手机是' . self::$phone;}}echo User4::user();echo '<hr>';//二、实例演示抽象类//建立一个抽象类,只要在类的方法中包含有没有实现的方法就叫做抽象类,抽象类不能被实例//继承抽象类必须将父类中的抽象方法必须全部实现//抽象类中可以有实现的方法,也可以有没有实现的方法abstract class User5{public static $name = '程东旭';public static $age = 30;public static $email = 'chengdongxu@php.cn';abstract public static function user();}class User6 extends User5{protected static $phone = 'apple';public static function user(){return self::$name . '的年龄是' . self::$age . ',邮箱是' . self::$email . ',用的手机是' . self::$phone;}}echo User6::user();echo '<hr>';//三、实例演示接口//接口中不能有实现的方法,必须所有的方法都是未实现//接口可以实现多继承interface iUser1{const NATION1 = 'USA';public static function user();}interface iUser2{const NATION2 = 'CHINA';public static function write();}//接口的实现,工作类class User8 implements iUser1, iUser2{public static $name = '程东旭';public static function user(){return iUser1::NATION1;}public static function write(){return self::$name;}}//客户端操作echo User8::user() . '<br>';echo User8::write();//接口中允许存在的成员有:常量、动态方法、静态方法,不允许定义的成员有变量、静态属性、抽象方法、静态抽象方法interface saaa{//常量public const NAME = 'chengdongxu';//方法public function aaa();//静态方法public static function ccc();}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号