首页 > 其他分享 >谈谈你对面向对象的理解

谈谈你对面向对象的理解

时间:2022-08-22 20:58:44浏览次数:80  
标签:子类 多态 面向对象 谈谈 理解 抽象 父类 方法

原文:谈谈你对面向对象的理解?谈一下你对面向对象的理解?。简单修改。

将问题的解决抽象为对象执行动作、对象之间相互交互的过程,即面向对象。把具体事物的特定属性和通过这些属性来实现一些动作的具体方法放到一个类里面,这就是封装。通常将属性设为私有,仅允许通过指定方法来间接访问属性,通过在方法中编写指定代码,来控制访问,所以封装可提升数据的安全性,同时使外部只需知道如何调用 API,而不用考虑被隐藏起来的细节。

封装是我们所说的面向对象编程的特征之一,除此之外还有继承和多态。

继承也就是父类的一些成员,可以被子类重复使用,子类不必再在自己的类里面重新定义一回,父类里有的我们只要拿过来用就好了,所以继承可实现代码复用。而对于自己类里面需要用到的新的成员,子类就可以自己来扩展了。当然,会出现一些特殊情况,就是有一些方法在父类中已经定义好了,但是子类在用的时候,发现需要进行特殊处理,比如普通员工的工资计算方法跟经理的计算方法是不一样的,所以这个时候,我们就不能直接调用父类的这个计算工资的方法了。

这个时候我们就需要用到面向对象的另一个特性,多态。我们要在子类里面把父类里面定义计算工资的方法在子类里面重新实现一遍。多态包含了重载和重写。重写就是把子类从父亲类里继承下来的方法重新写一遍,这样,父类里相同的方法就被覆盖了,当然啦,你还是可以通过 super.CaculSalary 方法来调用父类的工资计算方法。而重载就是类里面相同方法名,不同方法签名的情况,方法签名由方法名和形参列表决定,与方法的返回值、修饰符无关。

有时候还会提到抽象,抽象一方面是提取对象中所需要用到的属性和方法,将其抽象为类,另一方面,可以将类抽象为父类或抽象类、将行为抽象为接口。

总结:

  1. 抽象:指把核心的东西抽出来,把与我们要解决的问题有关的东西拿出来摆在面前

  2. 封装:让使用对象的人不考虑内部实现,只考虑功能使用,把内部的代码保护起来,只留出一些个api接口供用户使用

  3. 继承:就是为了代码的复用,从父类上继承出一些方法和属性,子类也有自己的一些属性

  4. 多态:实际上是不同对象作用与同一操作产生不同的效果。多态的思想实际上是把“想做什么”和“谁去做”分开

标签:子类,多态,面向对象,谈谈,理解,抽象,父类,方法
From: https://www.cnblogs.com/Higurashi-kagome/p/16614167.html

相关文章

  • 面向对象分析与设计的底层逻辑
    1 面向对象是符合人认识事物的基本方法 01 人是怎么认识事物的 在面向对象出现之前,已有面向过程的分析方法,为什么面向对象被提出了呢?究其本质原因,人们发现面向过程......
  • 【Java面试】谈谈常用的分布式ID设计方案
    “谈谈常用的分布式ID设计方案”!一个工作了7年的同学,被问到了这样一个问题。问题并不难,但是在实际面试的时候,如果只是回答1,2,3很难通过面试,因为作为一个高级程序员,还需......
  • Java IO理解
    JavaBIONIOAIO理解同步异步同步:发起一个调用后,被调用者未处理完请求之前,不返回异步:发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回......
  • 关于IC卡密钥理解和修改(简易篇)
    常用的IC卡由于结构简单,使用方便,价格低,越来越受到普通应用的欢迎.本文主要描述普通IC卡的密钥相关的知识, 关于IC卡的读写,必须使用IC卡读写器,我们推荐使用NFC读写......
  • Vue中bus传值的理解
      说起bus你会想到什么?公交车?总线?在Vue中,对于任意两个组件之间的传值,就可以使用事件总线—bus。简单描述  在任意两个组件传值中,可以创建一个bus类负责事件派发、监听......
  • 深入理解 Spring 事务:入门、使用、原理
    大家好,我是树哥。Spring事务是复杂一致性业务必备的知识点,掌握好Spring事务可以让我们写出更好地代码。这篇文章我们将介绍Spring事务的诞生背景,从而让我们可以更清......
  • Mysql 面试知识点-(理解即可)
    1、关系型和非关系型数据库的区别?关系型数据库的优点-容易理解,因为它采用了关系模型来组织数据。可以保持数据的一致性。数据更新的开销比较小。支持复杂查询(带wher......
  • 对原型链的理解
    目录原型链原型链原型对象在JavaScript中,绝大多数的函数都有一个叫做prototype的属性,指向原型对象,通过构造函数new出来的实例,都可以共享访问原型对象的属性。......
  • 面向对象
    1.什么是面向对象和面向过程编程思想面向过程:1.核心是‘过程’二字2.过程的含义是将程序流程化3.过程是流水线,用来分步骤解决问题的面向对象:1.核心是‘对象’二字......
  • vue中的EL理解
    el的作用:用于指明Vue实例的挂载目标。那么什么是挂载?虚拟dom与真实dom建立关系,让Vue实例控制页面中的某个区域的过程,称之为挂载。挂载的方式有:1、通过“el:'css选择器......