php 面向对象三大特点:封装、继承、多态
2021-03-18 07:26
标签:func extend 构造 sky 存在 over 自动调用 实现类 title 在讲解这三大特性前,我们先讲访问修饰符。 php中有3中访问修饰符:public protected private; public:表示公有的;可在本类、子类、对象实例中访问。 protected:表示受保护的;可在本类、子类中访问;不能在对象实例中访问。 private:表示私有的;可在本类中访问;不能在子类、对象实例中访问。 一、封装性 封装就是把抽取出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分只有被授权的操作(方法)才能对数据进行操作。 二、继承性 当多个类有很多共同属性和方法时,代码冗余;这时,我们可以将共有部分提取出来,封装成一个类;子类经过一些操作可以使用这个共有的父类,这个就叫继承。 语法结构: class 父类名{} class 子类名 extends 父类名{} 继承要素: 三、多态性 扩展: 方法重载(overload) 基本概念:函数名相同,但参数的个数或参数的类型不同,达到调用同一个函数,可以区分不同的函数 在PHP5中虽然也支持重载,但是和其它语言还是有很大区别的,php中不能定义多个同名函数 PHP5中提供了强大的“魔术”函数,使用这些魔术函数,我们可以做到函数重载 这里我们要到到 __call,当一个对象调一个方法时,而该方法不存在,则程序会自动调用__call php 面向对象三大特点:封装、继承、多态 标签:func extend 构造 sky 存在 over 自动调用 实现类 title 原文地址:https://www.cnblogs.com/lyzaidxh/p/12772118.htmlclass 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 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
class Student{
public $name;
protected $age;
private $play;
public function getPlay(){
echo ‘我是Student‘;
}
}
// Pupil类继承Student类
class Pupil extends Student {
public function __construct(){
parent::getPlay(); // 可以这样调用父类的方法
}
public function getPlay(){
echo ‘我是Pupil‘;
}
}
$p1 = new Pupil(); // 我是Student
$p1->getPlay(); // 我是Pupil
文章标题:php 面向对象三大特点:封装、继承、多态
文章链接:http://soscw.com/index.php/essay/65682.html