【PHP】php面向对象

类的声明

// 被final修饰的类不能被重新
final class Person{
    private $name;
    private $age;

    // 声明成员变量时如果没有访问修饰符,必须要加 var 
    var $test;  
    
    // 成员常量的变量名不需要加 $
    const n = 666;

    // 构造器函数(前面注意是两个下划线)
    function __construct($name, $age){
        // 注意:是$this,且利用$this访问成员变量时,变量名不需要加$
        $this->name = $name;
        $this->age = $age; 
    }

    function getName(){
        return $this->name;
    }

    // 被final修饰的方法不能被覆盖
    final function getAge(){
        return $this->age;
    }

    function hello(){
        self::sayHello(); // 调用自身静态方法,php特有
    }

    static function sayHello(){
        echo "Hello<br>";
    }
    
    // 析构函数,注意:调用静态方法不会调起析构函数
    function __destruct(){
        echo "我执行完了";
    }
}

self$this 的区别

  • self调用的是类,而$this调用的则是实例化的对象

  • self可以调用自身静态方法和常量,$this不可以

  • self的后面接的符合是:: , $this后面的符合是->

抽象类的声明

abstract class AbstractClass{
    
    abstract function testFun();
    
    function hello(){
        echo "hello<br>";
    }
    
}

对象的实例化

Person::sayHello(); // 调用静态方法
$a = new Person("小明", 11);
echo $a->getAge()."<br>";
$a->hello();

类的继承

class SonClass extends ParentClass{
    
    function __construct(){
        
        // 子类利用parent关键字访问父类成员
        
        parent::__construct(); // 调用父类构造函数
        
        echo parent::number; // 使用调用父类的变量
        
    }
    
    // 可以直接对父类进行重新或重载
    
}

接口的声明与继承

// 声明接口
interface MyInterface{
    
    function test();
    
}
// 类继承接口
class MyClass implements MyInterface{
    function test(){
        echo "Hello World!";
    }
}
posted @ 2020-08-03 22:05  CloudSir  阅读(9)  评论(0)    收藏  举报