Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:接口好好看看, 以后你自己可以不写, 但肯定会天天用到
interface iApp
{
//声明常量
const NAME = '用户管理系统';
//静态成员 公共抽象方法
public static function getUser(...$args);
//构造方法
public function __construct(...$args);
}
class App implements iApp
{
//实现静态方法
public static function getUser(...$args)
{
return print_r($args,true);
}
//实现构造方法
public function __construct(...$args)
{
return $this->getUser();
}
}
//实例化实现类
$app = new App();
//用接口调用常量
echo iApp::NAME;
//用类调用静态成员
echo App::getUser(['name'=>'jack','age'=>28]);
interface iApp
{
//声明常量
const NAME = '用户管理系统';
//静态成员 公共抽象方法
public static function getUser(...$args);
//构造方法
public function __construct(...$args);
}
interface iUser {
//声明常量
const USERNAME = 'admin';
}
//可以继承多个接口,用逗号隔开
interface iLogin extends iApp,iUser
{
public function userpwd(string $arg);
}
abstract class Model
{
public function login() {}
abstract public function __construct($name);
}
// 抽象类必须通过它的子类才可以使用
class userModel extends Model
{
private $name;
// 抽象类的实现类(子类)必须将抽象类的抽象方法实现
public function __construct($name)
{
$this->name = $name;
}
public function login()
{
echo '恭喜'. $this->name . '注册成功';
}
}
$user = new userModel('jack');
echo $user->login();
//输出 : 恭喜jack注册成功
父类静态方法可以被子类继承和重写
class Getuser
{
public static function user(){
return '这里是父类' .__METHOD__;
}
public static function goods(){
return static::user();
}
}
class Myuser extends Getuser
{
public static function user(){
return '这里是子类' . __DIR__;
}
}
$myuser = new Myuser();
echo Myuser::user() .'<br>';
echo Myuser::goods();