zoukankan      html  css  js  c++  java
  • 面向对象的理解

    这个是我对面向对象的理解,理解有误请喷我吧!菜鸟一枚!

      用最简单的方式,去办最复杂的是,看字面意思理解面向对象,就是先要面向找到需要面向的东西,把所要面向的东西抽象出来,封装在一个盒子中组成一个对象。而这个东西可以是对象的属性,对象的行为特征等。所以面向对象在我看来就是将所要表示的具有相同对象的属性和行为特征封装在一个类中组成一个类。而这个类可是在单纯一点,比如一个类里面只封装对象的属性,在类多了时组成一个包,这个包专门放属性类。在回到前面那句话,将具有相同属性和行为特征的对象封装在一起。实现了代码之间的低耦合、高内聚,这样就产生了封装,面向对象的特征之一,封装是提高了代码之间的可维护性。

      封装起来的代码看起来就优雅多了,而系统还需要进行升级什么的呀,在不能满足需求的时候,就需要在去在原本的类的基础上去写新的东西,比如原本人眼睛、鼻子什么的都有了,可是现在需要有一个衣服等等。这样就可以将人所封装的类看成一个基类,在这基础上去继承人这个类,实现一个新类就是衣服类。所以这也就是面向对象的另一个特征继承,继承实现了代码之间的可扩展性,有利于系统的扩展。为了系统的可扩展性,又引出了一个新的概念就是多态。

      在说多态之前在说一个,就是重写和重载这两个我的理解。

      重写,,一般是发生在两个类之间的,重写的条件就是要子类去继承父类,重写父类中的方法,不包含父类的私有方法,重写中子类的方位权限要比父类中的访问权限要大,并且重写中的子类要和父类的名字,参数,返回值相同。不相同的话是直接报错了,不信去试试。并且重写的方法的异常要比父类中的异常要小或者相同,重写是子类对父类的扩展。

      而重载呢,是发生在一个类中,定义是一个类中方法名相同,形参列表不同的方法。很好理解,比如人是一类,而人中有一个方法是爱好,具体爱好什么呢,这个就根据编程人员的定义了,同样的将爱好这个类中的具体爱好在定义到一个类中,在引用进来都可以。

    重载也是一种多态,是发生在一个类中的不同方法,让一个类中的相同方法所传递的不同参数,实现一个类的多态。

       在说一下多态吧,子类继承父类,之类重写父类中的方法,或者在类中实现自己的方法,达到系统的可扩展性。如果从另一个角度去理解的话,我认为重载是垂直对一个类中的方法实现多态。而重写是在对类与类之间实现水平扩展,相互之间进行弥补,一起打造了多态的环境。接口也是可以去继承去实现的,这里就写了,网上代码和资料很多。

      写的不好不要介意,我个人的理解方式,请喷吧!大神可以对我菜鸟进行指导一下。

  • 相关阅读:
    python内置的魔术命令(builtin magic commands)
    绘制ROC曲线
    python with语句中的变量有作用域吗?
    Visual Studio上编译ncnn
    loss函数学习笔记
    Install zeal on ubuntu16.04
    cmake方式使用vlfeat
    整理读研期间用过、改进过、写过的代码
    ubuntu下使用matplotlib绘图无法显示中文label
    error: each element of 'ext_modules' option must be an Extension instance or 2-tuple
  • 原文地址:https://www.cnblogs.com/zlazm/p/7895130.html
Copyright © 2011-2022 走看看