美文网首页PHP经验分享
面向对象的特征是什么?

面向对象的特征是什么?

作者: 十年磨一剑1111 | 来源:发表于2020-01-12 12:10 被阅读0次

面向对象的主要特征有抽象,继承,封装和多态
1.抽象:说到抽象大家可能会联想到抽象类,抽象方法之类的。这样有助于大家理解,就是不去定义具体的实现,比如定义一个方法,没有具体的实现,它的实现由子类来完成,不同的子类可能有不同的具体实现,但是都拥有同一个方法。

<?php
abstract class Test {
        public abstract function a ();
}

2.继承:这个有点类似遗传学,同样的,如果一个类继承了另外一个类,也就继承了父类的方法或者实例变量,并且子类是可以修改或者增加新的方法以适应新的需要。

<?php
class A {
    private $a = 1;  //只能在类的内部能访问,子类不能访问,可以理解为不被子类继承
    protected $b = 2; //可以在类的内部,或者子类中可以访问
    public $c = 3;  //类的内部,子类中,类的外部都可以访问
        private function t1 () {
          echo "this is t1 function\r\n";
    }
    public  function t2 () {
          echo "this is t2 function\r\n";
    }
   public   function t3 () {
          echo "this is t3 function\r\n";
    }
}

class B extends A {
     public function t3() {
           echo "this is sub t3 function\r\n";
    }
}

$foo = new A();
$bar = new B();
$foo->t2();
$bar->t2();
$foo->t3();
$bar->t3();

看下输出结果:


print.png

3.封装:封装就是对类的内部的变量,方法加了保护,我们经常会看到的访问控制权限有,private,protected,public 这三种,具体的描述请看上面的那个例子里面的注释。

4.多态:多态是指允许不同类的对象对同一消息做出不同的响应,比如在开完会后老板叫大家回去继续工作,假设员工来自不同的部门,那实际上不同的部门负责不同的工作,老板并没有吩咐大家具体做什么工作,具体的工作由每个部门自行完成。因为不同的语言由不同的特性,因此实现多态的方式也会不一样。我们重点来看下php的实现:

<?php
abstract class employee { 
         abstract function working();
  }
class teacher extends employee {
       public function working() {
              echo '教书';
       }
}
class coder extends employee {
       public function working() {
              echo '敲代码';
       }
}

function doprint($obj) {
      if (get_class($obj) == 'employee') {
                        echo 'Error';
      } else {
                   $obj->working();
      }
}
doprint(new teacher());
doprint(new coder());
doprint(new employee());

看到这里,有同学可能会说那我可以直接调用coder类或者teacher类的working()方法,岂不是更快?,确实是可以,但是这种调用方法不是我们要说的多态。
思考:
1.其他语言多态的实现方式,比如C,C++,Java

相关文章

  • [Python]关于面向对象(上)

    1.什么是面向对象?特征是什么? 面向对象是一种编程思路,是一种软件开发的方法。面向对象有三大特征:⑴封装 ⑵继承...

  • Java 面向对象特征

    java面向对象的三大特征是什么? 那就是封装、继承、多态。 但说到面向对象,还有一个很主要的特征就是抽象。 封装...

  • 面向对象

    面向对象方法概论 对象、结构 概念呢 特征 1.1 什么是面向对象 面向对象方法的基本思想 对象 属性-静态特征 ...

  • 面向对象的特征是什么?

    面向对象的主要特征有抽象,继承,封装和多态1.抽象:说到抽象大家可能会联想到抽象类,抽象方法之类的。这样有助于大家...

  • 第十八天_阶段测试(2018-08-17)

    大数据1801阶段考试题 1、面向对象的思想归根揭底是啥?面向对象三大特征是什么? 面向对象的思想其实就是找合适的...

  • Java基础(二)

    面向对象特征;重载和重写;静态绑定和动态绑定;抽象类和接口;包。 面向对象的特征 面向对象的三个基本特征是:封装、...

  • iOS概念知识

    面向对象的三大特征,并作简单的介绍。 面向对象的三个基本特征是:封装、继承、多态。 1.封装是面向对象的特征之一,...

  • 面试 | java基础

    面向对象 1、面向对象特征? 封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • 面向对象的基础day02

    #1.面向对象的相关概念 01 对象是什么? 什么都是对象,对象是具体的事物; 02 对象的描述信息(静态特征) ...

网友评论

    本文标题:面向对象的特征是什么?

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