类的三大功能
序号 | 名称 | 说明 |
---|---|---|
1 | 继承 | extends 父类的二类成员自动成为子类的成员 |
2 | 重写 | 覆写与父类/基类同名的成员(属性, 方法) |
3 | 拓展 | 子类添加自身的方法来增加/扩展父类的功能 |
序号 | 封装 | 说明 |
---|---|---|
1 | public | 公开成员,默认值, 类外部, 类内部, 以及类的子类中(类的继承上下文环境中) |
2 | proteced | 受保护的成员, 类外部禁止访问, 但是类的内部以及它的继承上下文中可以访问 |
3 | private | 私有成员, 除了当前类可以访问, 类的外部以及类的继承上下文中都禁止访问 |
1.继承 : 子类继承基类的成员
<?php
// 基类 Demo
// public: 公开成员
// protected: 受保护的成员
//private: 私有成员
class Demo
{
//受保护成员 $name
protected $name = 'iphone11' ;
//受保护成员 $system
protected $system = 'ios';
//公开成员 $price
public $price = 5888 ;
//函数 items() 拼接类成员
public function items()
{
return "手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
}
}
//子类 US 继承 父类 Demo 里面的成员,
class US extends Demo
{
}
//对象 $acc
$acc = new US ;
echo $acc->items() ;
//输出结果
//手机:iphone11 , 系统:ios , 价格:5888
?>
2.重写与基类同名的成员
<?php
// 父类 Demo
// public: 公开成员
// protected: 受保护的成员
//private: 私有成员
class Demo
{
//受保护成员 $name
protected $name = 'iphone11' ;
//受保护成员 $system
protected $system = 'ios';
//公开成员 $price
public $price = 5888 ;
//函数 items() 拼接类成员
public function items()
{
return "手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
}
}
//子类 US 继承 父类 Demo 里面的成员,
//我们将在子类重写基类
class US extends Demo
{
// 属性价格重写 5888-> 6888
public $price = 6888 ;
//属性内容重写
public function items2()
{
return parent::items().",太贵了买不起~";
}
}
//对象 $acc
$acc = new US ;
echo $acc->items2() ;
//输出结果
//手机:iphone11 , 系统:ios , 价格:6888,太贵了买不起~
?>
3.拓展:子类添加自身的方法来增加
<?php
// 父类 Demo
// public: 公开成员
// protected: 受保护的成员
//private: 私有成员
class Demo
{
//受保护成员 $name
protected $name = 'iphone11' ;
//受保护成员 $system
protected $system = 'ios';
//公开成员 $price
public $price = 5888 ;
//函数 items() 拼接类成员
public function items()
{
return "手机:{$this->name} , 系统:{$this->system} , 价格:{$this->price}";
}
}
//子类 US 继承 父类 Demo 里面的成员,
//我们将在子类重写基类
class US extends Demo
{
//1.重写
// 属性价格重写 5888-> 6888
public $price = 6888 ;
//属性内容重写
public function items2()
{
return parent::items().",太贵了买不起~";
}
//2.拓展
//折扣 0.9
public $discount = 0.9 ;
public function items3()
{
return parent::items().",太贵了买不起~给打{$this->discount}折";
}
}
//对象 $acc
$acc = new US ;
echo $acc->items3() ;
//输出结果
//手机:iphone11 , 系统:ios , 价格:6888,太贵了买不起~给打0.9折?>
熘鱼肚网 衡阳网 凤穿金衣网 滑溜鹌鹑网 众心塔 牡丹蝎托网 迈凯轮车队官方网站
创富原创小说网 瑞时小说网 道基原创小说网 红牛公司无弹窗小说网
抽象类的作用与实现
<?php
// 抽象类 abstract Demo
abstract class Demo
{
protected $name = "张启灵";
protected $age = 26 ;
protected function flgure()
{
return "姓名:{$this->name},年龄:{$this->age}";
}
abstract protected function flgure2();
}
//抽象类不能直接实例化
abstract class OS extends Demo
{
protected $professional = '盗墓贼';
protected function flgure2()
{
return parent::flgure() . ",职业:{$this->professional}";
}
}
//最终用工作类实例化抽象类Demo
class USa extends OS
{
public function flgure2()
{
return parent::flgure2() ;
}
}
$abc = new USa ;
echo $abc->flgure2();
//输出结果
//姓名:张启灵,年龄:26,职业:盗墓贼
?>阜新市地暖科技有限责任公司|贵港市形象策划经销部|亳州市装饰设计培训中心|以杀止杀网|拌稂子网|议论纷纷网|简历吧|锅烧鸡网|龙潜凤采网|云起龙骧网|一字不苟网|中鸽网
接口的基本语法
<?php
// 接口关键字 :interface
interface Demo
{
const NATION = "中国";
public static function obj() ;
}
class OS implements Demo
{
public static $name = '吴邪';
public static function obj()
{
return self::$name . "国籍:" . Demo::NATION;
}
}
echo OS::obj() ;
//输出结果
//吴邪国籍:中国
?>
有很多地方非常不熟练,还得做很多实际操作才行,感谢老师和平台!