首页 > 其他分享 >面向对象和面向过程(封装继承多态)

面向对象和面向过程(封装继承多态)

时间:2023-03-29 14:47:29浏览次数:39  
标签:封装 构造方法 继承 子类 多态 构造 面向对象 父类 super

面向对象&面向过程

  • 面向过程思想

步骤清晰,第一步做什么第二步做什么

面对过程适合处理一些简单的问题

  • 面向对象思想

物以类聚,分类的思维模式

对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们要使用面对对象的思路来分析整个系统,但是具体到围观操作,仍然需要面对过程的思路去处理

什么是面向对象

  • 面向对象编程(oop)

  • 面向对象编程的本质是:以类的方式组织代码,以对象的组织数据

  • 抽象

三大特征

  • 封装
  • 继承
  • 多态

方法的定义

  • 修饰词
  • 返回值类型
  • 方法名 驼峰原则,见名知意
    • break和return的区别
  • 参数列表
  • 异常抛出
image-20230328154840893

创建与初始化对象

  • 使用new关键字创建对象

  • 使用new关键字创建的时候,除了会分配内存空间外还会进行默认初始化以及对类中构造器的调用

  • 类中的构造器也被称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下两种特点

    • 必须和类的名字相同
    • 必须没有返回值类型,也不能写void
    • 构造器必须要掌握

    构造器的核心作用

    1. 使用new关键字,本身就是在调用构造器
    2. 构造器用来初始化值

封装

  • 该露的露,该藏的藏,我们程序设计追求的是“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合指的是仅暴露少量的方法给外部使用(类似于电视机)
  • 封装(数据的隐藏)
  • 属性私有get/set

封装的意义

  1. 提高程序的安全性,保护数据
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 提高系统的可维护性

继承

  • 继承的本质是对某一批类的抽象

  • extends的意思是”拓展“。子类是父类的拓展

  • Java中只有单继承,没有多继承,一个儿子只能有一个爸爸

    子类继承父类的所有方法!前提是public

    优先级:

    public >protected >default >private

    快捷键:ctrl+h:打开继承表

    image-20230328200058151

    java中都默认继承Object

    super注意点:

    1. super调用父类的构造方法,必须在构造的方法的第一个
    2. super必须只能出现在子类的方法或者构造方法中
    3. super和this不能同时调用构造方法

    Vs this:

    代表的对象不同

    this:指的是本身调用的对象

    super:指的是父类对象的应用

    前提:

    this:没有继承也可以使用,super就不行

    构造方法:

    this():本类的构造

    super():父类的构造

    方法的重写:

    静态方法和非静态的方法差距很大

    //非静态的才可以重写

    重写:需要有继承关系,子类继承父类的方法

    1. 方法名必须相同
    2. 参数列表必须相同
    3. 修饰符:范围可以扩大,但是不能缩小
    4. 抛出的异常:可以被缩小,但不能被扩大

    为什么要重写:

    • 父类的功能,子类不一定需要,或者不一定满足
    • alt +insert : override;

    多态

    • 动态编译:类型
  1. 父类引用指向子类对象
  2. 把子类转换成父类,向上转型
  3. 把父类转换成子类,向下转型,需要强转
  4. 强制转换会丢失精度(子类转为父类可能会丢失方法)
  5. 方便方法的调用,减少重复的代码!简洁

标签:封装,构造方法,继承,子类,多态,构造,面向对象,父类,super
From: https://www.cnblogs.com/nastudy/p/17268851.html

相关文章

  • 面向对象设计原则
    面向对象设计原则面向对象设计原则包括:1、单一职责原则不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。2、里氏替换原则......
  • vue 软键盘组件封装
    场景和需求1软键盘固定2多输入框共用一个组件,聚焦切换时操作对象自动切换3根据光标在输入框的位置进行相应的输入和删除操作4点击软键盘时保存输入框光标活跃5输......
  • C#面向对象核心-继承
    继承继承主要实现重用代码,来节省开发时间。1继承基本概念一个类B继承一个类A,被继承的类A称为父类、基类、超类,继承的类B称为子类、派生类。子类会继承父类的所有成......
  • TS+Vue3+Echarts的封装与使用
    TS+Vue3+Echarts的组件封装步骤如下统计分析页面使用栅格布局进行规划     抽离组件分别包括数字面板组件count-card,统计面板组件chart-card及特定图......
  • 面向对象设计原则
    1、简介常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。SRP:就一个类而言,应该只有一个引起它变化的原因,也就是一个类只有一个职责,这个......
  • C#面向对象核心-封装
    封装封装定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中",这个包就是类。在面向对象程序设计方法论中,封装可以防止对实现细节的访问。1类和对象1.1什么是类......
  • iOS7应用开发6:UINavigation, UITabbar控制器的多态性
    1、前期所实现的PlayingCard游戏,其ViewController只能适应PlayingCard这一种游戏规则。而将createDeck函数修改为返回一个nil后,整个ViewController与PlayingCard就没有关......
  • 接口自动化测试框架-关于接口关联的封装+统一请求封装
    一.关于接口关联的封装策略:去掉全局变量,用ymal文件代替保存ps:如果使用全局变量的话,就会出现在需要使用这个这个变量的地方就得去import类文件,相互引用的话python无法支......
  • C#多态性学习,虚方法、抽象方法、接口等用法举例
    1.多态性定义  C#中的多态性是OOP(面向对象编程)的一个基本概念,它允许一个对象在不同情况下表现出不同的行为,以增强代码的可重用性和灵活性。  根据网上的教程,我们得......
  • elasticsearch服务类封装
    <?phpnamespaceapp\service;useElasticsearch\ClientBuilder;useapp\service\Service;classElasticsearchServiceextendsService{private$client;p......