类的三大功能
序号 |
名称 |
说明 |
1 |
继承 |
extends 父类的二类成员自动成为子类的成员 |
2 |
重写 |
覆写与父类/基类同名的成员(属性, 方法) |
3 |
拓展 |
子类添加自身的方法来增加/扩展父类的功能 |
序号 |
封装 |
说明 |
1 |
public |
公开成员,默认值, 类外部, 类内部, 以及类的子类中(类的继承上下文环境中) |
2 |
proteced |
受保护的成员, 类外部禁止访问, 但是类的内部以及它的继承上下文中可以访问 |
3 |
private |
私有成员, 除了当前类可以访问, 类的外部以及类的继承上下文中都禁止访问 |
1.继承 : 子类继承基类的成员
php
// 基类 Demo
// public: 公开成员
// protected: 受保护的成员
//private: 私有成员
classDemo
{
//受保护成员 $name
protected$name='iphone11';
//受保护成员 $system
protected$system='ios';
//公开成员 $price
public$price=5888;
//函数 items() 拼接类成员
publicfunctionitems()
{
return"手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
}
}
//子类 US 继承 父类 Demo 里面的成员,
classUSextendsDemo
{
}
//对象 $acc
$acc=newUS;
echo $acc->items();
//输出结果
//手机:iphone11 , 系统:ios , 价格:5888
?>
2.重写与基类同名的成员
php
// 父类 Demo
// public: 公开成员
// protected: 受保护的成员
//private: 私有成员
classDemo
{
//受保护成员 $name
protected$name='iphone11';
//受保护成员 $system
protected$system='ios';
//公开成员 $price
public$price=5888;
//函数 items() 拼接类成员
publicfunctionitems()
{
return"手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
}
}
//子类 US 继承 父类 Demo 里面的成员,
//我们将在子类重写基类
classUSextendsDemo
{
// 属性价格重写 5888-> 6888
public$price=6888;
//属性内容重写
publicfunctionitems2()
{
returnparent::items().",太贵了买不起~";
}
}
//对象 $acc
$acc=newUS;
echo $acc->items2();
//输出结果
//手机:iphone11 , 系统:ios , 价格:6888,太贵了买不起~
?>
3.拓展:子类添加自身的方法来增加
php
// 父类 Demo
// public: 公开成员
// protected: 受保护的成员
//private: 私有成员
classDemo
{
//受保护成员 $name
protected$name='iphone11';
//受保护成员 $system
protected$system='ios';
//公开成员 $price
public$price=5888;
//函数 items() 拼接类成员
publicfunctionitems()
{
return"手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
}
}
//子类 US 继承 父类 Demo 里面的成员,
//我们将在子类重写基类
classUSextendsDemo
{
//1.重写
// 属性价格重写 5888-> 6888
public$price=6888;
//属性内容重写
publicfunctionitems2()
{
returnparent::items().",太贵了买不起~";
}
//2.拓展
//折扣 0.9
public$discount=0.9;
publicfunctionitems3()
{
returnparent::items().",太贵了买不起~给打{$this->discount}折";
}
}
//对象 $acc
$acc=newUS;
echo $acc->items3();
//输出结果
//手机:iphone11 , 系统:ios , 价格:6888,太贵了买不起~给打0.9折?>
抽象类的作用与实现
php
// 抽象类 abstract Demo
abstractclassDemo
{
protected$name="张启灵";
protected$age=26;
protectedfunctionflgure()
{
return"姓名:{$this->name},年龄:{$this->age}";
}
abstractprotectedfunctionflgure2();
}
//抽象类不能直接实例化
abstractclassOSextendsDemo
{
protected$professional='盗墓贼';
protectedfunctionflgure2()
{
returnparent::flgure().",职业:{$this->professional}";
}
}
//最终用工作类实例化抽象类Demo
classUSaextendsOS
{
publicfunctionflgure2()
{
returnparent::flgure2();
}
}
$abc=newUSa;
echo $abc->flgure2();
//输出结果
//姓名:张启灵,年龄:26,职业:盗墓贼
?>
接口的基本语法
php
// 接口关键字 :interface
interfaceDemo
{
constNATION="中国";
publicstaticfunctionobj();
}
classOSimplementsDemo
{
publicstatic$name='吴邪';
publicstaticfunctionobj()
{
returnself::$name."国籍:".Demo::NATION;
}
}
echo OS::obj();
//输出结果
//吴邪国籍:中国
?>
有很多地方非常不熟练,还得做很多实际操作才行,感谢老师和平台!
Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:这些都是老码农的吐血总结 , 值得收藏和学习