美文网首页PHP开发者码农的世界程序员
PHP面向对象基础知识整理2

PHP面向对象基础知识整理2

作者: e582551b6ee5 | 来源:发表于2017-02-09 12:54 被阅读31次

1.instanceof关键词使用

<?php
class Computer{

}

$computer = new Computer();

echo ($computer instanceof Computer);
//instanceof关键词用于判断$computer是否是类Computer下的对象

2.面向对象特性1继承,使用 extends关键词

<?php
//这是父类,电脑类
class Computer{
    public $_name = '联想';

    public function _run(){
        echo '联想在运行!';
    }
}

//子类,笔记本电脑类
class NoteComputer extends Computer{

}

$notecomputer = new NoteComputer();
echo $notecomputer->_name;
$notecomputer->_run();

3.方法重载

<?php
//这是父类,电脑类
class Computer{
    public $_name = '联想';

    public function _run(){
        echo '联想在运行!';
    }
}

//子类,笔记本电脑类
class NoteComputer extends Computer{

    //如果不需要父类的字段和方法,那么可以采用重写的方法覆盖掉父类的字段和方法
    //虽然最后调用的是子类的字段和方法,但是并不代表子类的方法和字段替换了父类,只是因为子类的优先级比父类高
    public $_name = 'dell';

    public  function _run(){
        echo 'dell在运行!';
    }
}

$notecomputer = new NoteComputer();
echo $notecomputer->_name;
$notecomputer->_run();

4.子类调用父类成员字段和方法,父类成员字段和方法要使用修饰符protected

<?php
//这是父类,电脑类
//为了安全,一般将父类的方法封装起来,让子类来调用,通过子类调用要设置protected才能调用父类
class Computer{

    //私有化,但是无法被子类继承,这个时候要用受保护的修饰符来封装
    protected $_name = '联想';

    protected function _run(){
        return '联想在运行!';
    }
}

//子类,笔记本电脑类
class NoteComputer extends Computer{
    public function getTop(){
        echo $this->_name;
        echo $this->_run();
    }
}

$notecomputer = new NoteComputer();
$notecomputer->getTop();

5.子类已经覆盖了父类,但是又再想调用父类的成员字段方法

<?php
//这是父类,电脑类
class Computer{
    public $_name = '联想';

    public function _run(){
        return '联想在运行!';
    }
}

//子类,笔记本电脑类
class NoteComputer extends Computer{

    //如果不需要父类的字段和方法,那么可以采用重写的方法覆盖掉父类的字段和方法
    //虽然最后调用的是子类的字段和方法,但是并不代表子类的方法和字段替换了父类,只是因为子类的优先级比父类高
    //当子类已经覆盖了父类的方法和字段
    //但是又想调用父类的字段和方法,要用类::方法来调用
    public $_name = 'dell';

    public  function _run(){
        echo 'dell在运行!';

        //这两种方法都能直接调用父类方法
        echo Computer::_run();
        echo parent::_run();
    }
}

$notecomputer = new NoteComputer();
echo $notecomputer->_name;
$notecomputer->_run();

6.final关键字使用

<?php
//final如果加在类前面,表示这个类不能被继承
//final class Computer{
//
//}

//class Computer{
//    //final如果加在方法前面,表示不能够重写此方法
//    final public function _run(){
//
//    }
//}

class Computer{
    public function _run(){

    }
}

class NoteComputer extends Computer{
    public function _run(){

    }
}

如果喜欢,可以关注我,希望能认识更多志同道合的朋友。

相关文章

  • PHP面向对象基础知识整理2

    1.instanceof关键词使用 2.面向对象特性1继承,使用 extends关键词 3.方法重载 4.子类调用...

  • PHP面向对象基础知识整理

    面向对象由类、成员(字段)、方法组成,方法大致分为三种,分别是普通方法、构造方法、析构方法,具体区别如下: 析构方...

  • PHP面向对象基础知识整理1

    拦截器使用,拦截器检查到私有字段,则不会报错,如果没有拦截器会直接报错。 PHP5.3以后不支持方法私有,这点要注...

  • 7.1.1 PHP面向对象之面向过程详解

    7.1.1 PHP面向对象之面向过程详解面向对象的编程思想Object Oriented 大象与冰箱1、打开2、装...

  • PHP - Hush Framework 学习记录

    PHP 目录 1、PHP 语言的介绍(面向对象,session,MVC 模式) 2、RESTful API 介绍及...

  • 面向对象相关

    面向对象: 题: 写出php类权限修饰符; 延伸考点: 1. 面向对象的封装、继承、多态; 2. 魔术方法、 3....

  • 2019-07-28

    在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用。

  • PHP面向对象设计模式学习笔记

    PHP面向对象的基础知识1.命名空间 命名空间的名字要和文件的绝对路径一致2.类的自动载入 3.RSO-0 规范 ...

  • JavaScript之 new 命令

    JavaScript 面向对象编程的基础知识篇 1 。 1. 概述 面向对象编程(Object Oriented ...

  • 2019-07-18

    在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很...

网友评论

    本文标题:PHP面向对象基础知识整理2

    本文链接:https://www.haomeiwen.com/subject/ieoyittx.html