zoukankan      html  css  js  c++  java
  • 面向对象三大特性(封装/继承/多态)

    引入:在面向对象思想中,有三大特性,封装  继承  多态。

    思考:我们在使用类和对象实现编程的时候,到底是遵循这什么样的逻辑呢?为什么要这样规范类呢?

    引入:面向对象很重要的思想就是隐藏,即外部不知道类内部是如何实现业务逻辑的,只管调用和使用结果,这个就是面向对象三大特性之一:  封装

    1.封装【掌握】

    定义:封装,字面意思就是将内容装到某个容器中,并进行密封保存,在面向对象思想中,封装指数据和对数据的操作捆绑到一起,形成

    对外界的隐藏,同时对外提供可以操作的接口。

      1.数据:即要操作的数据,在面向对象的具体体现就是类成员属性,(属性和静态属性)和类常量,这些都是在类的内部定义的用来保存数据的。

      2.数据的操作:即数据加工过程,在面向对象的具体体现就是方法,内部定义业务逻辑对数据进行加工处理。

      3.捆绑到一起:即使用类结构{}将属性,类常量和方法存放到一起,称为整体。

      4.对外提供可操作的接口:即提供可以供外部访问的类成员(通常指的是方法)。

    <?php
    
    class student{             //捆绑内容到一起,形成对我i姐隐蔽的整体
       const COUNT=1000;
       private static $name="杜伟";
       private $sex="男";                   //数据属性和类常量的保存
    
       public function show(){           //数据的操作
            return self::$name;
       }
    }
    
    
    $xim=new student();
    echo $xim->show();               //外部只能访问类中公有的方法,具体实现不可见
    ?>

    总结:

      封装是从对象抽象形成类的过程。

      封装是一种将数据和数据操作捆绑到一起,形成对外部的隐蔽,同时提供对外操作的接口。

      封装是面向对象第一大特性,也是面试官喜欢询问对面向对象思想理解的知识。

    思考:面向对象思想是符合人类的思维逻辑的,那显示中的“富二代”指类的能过够在面向对象思维具体体现吗?

    继承【掌握】

    定义:继承,既有些类似的对象中,如人是一种大类,下面可以细分出一些小类,如男人,女人等,然后有一些公共的特性可以在一些基础类中体现,二其他相似或者较小

    类可以直接使用上级类中的公共代码。

      1.继承基础:子类(要继承其他类的类,也称为派生类)与父类(被继承的类,也称为基类)之间本身是一种包含与被包含关系,如此才有课继承的前提

    <?php
    //基类
    class posen{       //人类
    
    }
    
    class man{            //男人
    
    }
    
    class wman{             //女人
    
    }
    
    ?>

      2.继承关键字extends 子类想要继承父类,则必须在子类结构申明时明确使用extensa关键字来继承相关类

    <?php
    //基类
    class posen{       //人类
    
    }
    
    class man extends posen{            //男人类继承人类
    
    }
    
    class wman extends posen{             //女人类继承人类
    
    }
    
    
    ?>

      3.继承效果:子类可以不用自己去实现某些功能,二可以直接访问父类中已经存在的成员

    <?php
    //基类
    class posen{       //人类
        function eat(){
            echo "吃饭";
        }
    }
    
    class man extends posen{            //子类为空类,没有类成员
    
    }
    
    
    $s=new man();           //实例化子类
    $s->eat();                //输出吃饭

    总结

      1.继承extends是面向对象中实现代码重复利用的重要特性

      2.继承是指子类可以直接访问父类中已经存在的成员

      3.继承可以节省代码工作,同时允许子类中进行扩展,即在子类中增加必要的父类不存在的功能

    多态【了解】

      定义:多态,是指在发生类的继承的情况下,同时出现方法的重写(override),即子类拥有与父类同名的方法。然后在

    实例化对象的时候让父类对像(强制类型,php不支持),父类对象表现的子类对象的特点。

    1.php是弱类型语言,所以不存在变量的强制类型,因此php不支持多态。

    总结:

      1.多态的发生必须有继承关系,并且子类要重写父类方法

      2.多态是指父类对象拥有子类形态,并且可以表现出子类的特性(调用子类方法)

      3.php是弱类型语言,不支持多态。

  • 相关阅读:
    关于celery踩坑
    关于git的分批提交pull requests流程
    SymGAN—Exploiting Images for Video Recognition: Heterogeneous Feature Augmentation via Symmetric Adversarial Learning学习笔记
    AFN—Larger Norm More Transferable: An Adaptive Feature Norm Approach for Unsupervised Domain Adaptation学习笔记
    Learning to Transfer Examples for Partial Domain Adaptation学习笔记
    Partial Adversarial Domain Adaptation学习笔记
    Partial Transfer Learning with Selective Adversarial Networks学习笔记
    Importance Weighted Adversarial Nets for Partial Domain Adaptation学习笔记
    Exploiting Images for Video Recognition with Hierarchical Generative Adversarial Networks学习笔记
    improved open set domain adaptation with backpropagation 学习笔记
  • 原文地址:https://www.cnblogs.com/xiaowie/p/12287269.html
Copyright © 2011-2022 走看看