分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

php 面向对象三大特点:封装、继承、多态

发布时间:2023-09-06 01:20责任编辑:苏小强关键词:面向对象

在讲解这三大特性前,我们先讲访问修饰符。

php中有3中访问修饰符:public protected private;

public:表示公有的;可在本类、子类、对象实例中访问。

protected:表示受保护的;可在本类、子类中访问;不能在对象实例中访问。

private:表示私有的;可在本类中访问;不能在子类、对象实例中访问。

一、封装性

封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。

class Student{ ???public $name; ???protected $age; ???private $play; ???public function __construct($name, $age){ ???????echo ‘我是Student类‘; ???????$this->name = $name; ???????$this->age = $age; ???}}$student = new Student(‘moon‘, 18);

二、继承性

当多个类有很多共同属性和方法时,代码冗余;这时,我们可以将共有部分提取出来,封装成一个类;子类经过一些操作可以使用这个共有的父类,这个就叫继承。

语法结构: 

class 父类名{} 

class 子类名 extends 父类名{}

继承要素:

  • 一个子类只能继承一个父类(这里指直接继承);如果希望继承多个类的属性和方法,可以使用多层继承
  • 在创建某个子类实例时,默认情况下不会自动调用其父类的构造函数;可以使用 父类::__construct() 或者 parent::__construct() 来完成
  • 如果子类和父类的方法名相同(public,protected),我们称为方法覆盖或方法重写(override),看下面的多态性 
class Student{ ???public $name; ???protected $age; ???private $play; ???public function __construct($name, $age){ ???????echo ‘我是Student类‘; ???????$this->name = $name; ???????$this->age = $age; ???}}// Pupil类继承Student类class Pupil extends Student { ???public function testing(){ ???????echo ‘我是Pupil‘; ???} ???public function __construct($name, $age){ ???????parent::__construct($name, $age); ??// 调用父类的构造方法1 ???????// Student::__construct($name, $age); ??// 调用父类的构造方法2 ???????echo $this->name; ???????echo $this->age; ???????// echo $this->play; ???// 报错,父类private定义的属性不能被子类继承 ???}}new Pupil(‘sky‘, 18);// 实现类的多层继承class A{ ???public $name=‘AAA‘;}class B extends A{ ???public $age=30;}class C extends B{}$p = new C();echo $p->name; // 这里会输出AAA 

php 面向对象三大特点:封装、继承、多态

原文地址:http://www.cnblogs.com/minigrasshopper/p/7746447.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved