PHP面向对象三大特征

PHP学习笔记(二)之基础:PHP面向对象三大特征:封装 继承 多态 首先我们要分清楚面向对象和面向过程的的区别 众所周知:c语言是我们程序员起步必须学的语言之一,它是纯面向过程的。 然后:Java编程界的万金油 ˙ω˙ ,接触过的大家都知道它用途很广泛,然而是纯面向对象的. 一.封装 步骤: 1、类属性必须定义为公有(public),受保护(protected),(private)私有之一。如果用 var 定义,则被视为公有。 2、设置方法/调用方法(方法也可以定义属性,在function前面定义) 3、在方法中增加限制 <?php /** * Define MyClass */ class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj

PHP学习笔记(二)之基础:PHP面向对象三大特征:封装 继承 多态

首先我们要分清楚面向对象和面向过程的的区别

众所周知:c语言是我们程序员起步必须学的语言之一,它是纯面向过程的。

然后:Java编程界的万金油 ˙ω˙ ,接触过的大家都知道它用途很广泛,然而是纯面向对象的.

一.封装

步骤:

1、类属性必须定义为公有(public),受保护(protected),(private)私有之一。如果用 var 定义,则被视为公有。

2、设置方法/调用方法(方法也可以定义属性,在function前面定义)

3、在方法中增加限制

text
<?php
/**
 * Define MyClass
 */
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // 这行能被正常执行
echo $obj->protected; // 这行会产生一个致命错误
echo $obj->private; // 这行也会产生一个致命错误
$obj->printHello(); // 输出 Public、Protected 和 Private


/**
 * Define MyClass2
 */
class MyClass2 extends MyClass
{
    // 可以对 public 和 protected 进行重定义,但 private 而不能
    protected $protected = 'Protected2';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj2 = new MyClass2();
echo $obj2->public; // 这行能被正常执行
echo $obj2->private; // 未定义 private
echo $obj2->protected; // 这行会产生一个致命错误
$obj2->printHello(); // 输出 Public、Protected2 和 Undefined

?>

二.继承

子类继承父类的所有内容,但父类中的private部分不能直接访问

子类中新增加的属性和方法是对父类的扩展

子类中定义的与父类同名的属性是对父类属性的覆盖,同名的方法也是对父类方法的覆盖

text
<?php
class  shao
{
    public function sasa($name){
        echo $name,'狗!
';
    }
}
class zhen extends shao{
    public function aaa()
    {
        echo '猫
';
    }
}
$lli = new zhen();
$lli->aaa();
$lli->aaa('binghh');
?>