超级基础篇_疑惑实验

news/2024/5/1 7:07:17/文章来源:https://blog.csdn.net/u013372493/article/details/126967628

1、多态:

多态是什么?
        多态是同一个行为具有多个不同表现形式或形态的能力。
        多态就是同一个接口,使用不同的实例而执行不同操作
多态的优点
        1.消除类型之间的耦合关系
        2. 可替换性
        3. 可扩充性
        4. 接口性
        5. 灵活性
        6. 简化性
多态存在的三个必要条件
        1.继承
        2.重写
        3.父类引用指向子类对象
代码示例:

package com.example.log.controller;public class Temp {public static void main(String[] args) {TempInterface temp1 = new Temp1();TempInterface temp2 = new Temp2();temp1.fun();  //此刻 看起来都是 TempInterface  同一个东西,但是行为(输出结果)却不一样了temp2.fun();}
}interface TempInterface {void fun();
}class Temp1 implements TempInterface {public void fun() {System.out.println("Temp1");}
}class Temp2 implements TempInterface {public void fun() {System.out.println("Temp2");}
}

输出:

 扩展:由此引入 

策略模式:

调用方丢进去 具体的策略实例,则开始调用该实例的方法

定义一些独立的类来封装不同的算法,每一个类封装一个具体的算法

用多态来解耦 原本写在一坨的 if else ,一系列算法可以理解成接口的不同实现类,因为不同实现类都实现了相同的接口,因而它们也可以相互替换。策略模式让算法独立于客户端而变化与接口的实现类可以独立于使用接口的客户端变化类似。

策略模式

具体策略类  都去实现 抽象策略类上下文(调用方) 使用 抽象策略类,需丢入 具体策略对象 

缺点:类变多,代码不够直观表达 

文章参考:

策略模式(Strategy Pattern) - 简书 (jianshu.com)

工厂模式

我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 

即:我们委托工厂生产产品,但不关心怎么生产的。

工厂生产的对象的类型,用到了  多态,进行统一声明。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_11440.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树的应用 —— 二叉树:二叉树的性质

树的应用 —— 二叉树 二叉树(Binary Tree)是n (n ≥0)个节点构成的集合,或为空树(n 0),或为非空树。 对于非空树T ,要满足: ①有且仅有一个被称为根的节点…

FFmpeg入门详解之20:视频编码原理简介

视频为何需要压缩? 原因:未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频。 ● 传输困难 ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟。 主要压缩了什么东西? 原始视频压缩的目的是去除冗余信息&a…

结构体的理解

结构体前言结构体?定义变量如何赋初值?结构体的访问结构体的嵌套使用注意事项结构体的大小内存对齐默认对齐数的修改为什么存在内存对齐?结构体传参位段什么是位段?位段的内存分配深入剖析位段“存”数据位段的“取”位段的跨平台…

Idea工具中,使用Mapper对象有红线

背景: IDEA开发工具,springboot mybatis项目 (这个是不需要改的,也不算是问题,因为项目并不会报错,只是作者好奇找了下问题,并记录一下) 问题描述 mapper对象在service层有红线&a…

8 位卷王!总结 1135 页 Java 核心面试手册,硬钢 BATJ 一线大厂面试官

又到了金九银十求职季! HR 开始拼业绩,招聘网站也开始释放出大量岗位,转行跳槽、毕业求职的人都开始行动起来! 此时,对于大多数程序员来说,最大的目标就是:进大厂! 大厂为什么这么…

ArcGIS Map Sdk for unity使用

本文主要讨论离线模式。 目录 1.底图tpk文件制作 2.3D图层slpk文件制作 3.导入使用 1.底图tpk文件制作 软件:91卫图助手 Arcgis Pro 操作步骤: 打开91卫图助手,更换底图为高德影像/腾讯影像。(百度影像的地理投影格式有自身加密&#xff…

剖析容器运行时

特别说明:一部分转载自大佬文章:https://blog.csdn.net/weixin_39246554/article/details/120926174(不得不说大佬总结的真好啊!!!) 剩下的听老王公开课总结。 k8s官网关于运行时的说明&#x…

Typora Mac版本安装Pandoc导出文件为word格式(windows可通用)

我们在用Typora时导出的格式常常为PDF格式,但是如果我们要将文件导出为word格式的时候却需要安装插件PanDoc,我目前使用的是Mac版本的Typora,给大家分享一下如何安装Pandoc以及导出word格式文件。 1.根据Typora中的说明进入GitHub下载Pandoc…

Maven安装配置

Maven安装配置一、下载 apache-maven-3.6.1Maven官网:https://maven.apache.org/download.cgi(或)直接下载maven-3.8.6:https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip解压到当前文件夹二、配置 maven 环境变量右键此电脑 - 属性 - 高级…

MySQL学习——执行计划

MySQL中可以通过explain关键字模拟优化器执行SQL语句,从而知道MySQL是如何处理SQL语句的,这将有利我们做代码的优化。 1、MySQL查询执行过程客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,若缓存中存在,则立刻返回存储在缓存中的结果。否则进入下一阶段 服务…

扫码挪车小程序源码专业版上线了

1 、做挪车码之前,先说一些我个人的观点,大家一起探讨学习交流。 2 、挪车码已经是普遍已久的项目,其核心主要在于解决了车主的隐私问题。 3 、观察过目前市面上所有的挪车码系统, 公司也购买了一套测试了完整流程,盈…

【图像分割】基于matlab萤火虫算法图像分割【含Matlab源码 2136期】

一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【图像分割】基于matlab萤火虫算法图像分割【含Matlab源码 2136期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏图像处理(Matlab) 备注: 点击上面蓝色字体付费专栏图像处理(Matlab),…

parted分区步骤

parted分区步骤概述 通常我们用的比较多的一般都是fdisk工具来进行分区,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大;而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。但是现在的磁盘空间很多都已经是远远大于2T了,甚至达到2.5T和3T,那要怎么办能,有两…

路径规划总结(一)

第三讲 路径规划 ps:排版有一些问题,懒得改了,见Github 一、导航规划简介 导航规划:在给定环境的全局或局部知识以及一个或者一系列目标位置的条件下,使机器人能够根据知识和传感器感知信息高效可靠地到达目标位置。 导航规划类…

告别传统FTP!该了解一下替代FTP的新产品了

在某些情况下,需要从服务器上传(或下载)文件。多年来,最流行的文件传输方法是文件传输协议(FTP)。FTP的一大优点是它支持断点续传。FTP收获了方便性,却在安全性上有所欠缺。FTP未加密,这意味着格…

Cache-Augmented Inbatch Importance Resampling for Training Recommender Retriever

目录概符号说明启发本文方法BIR (inbatch importance resampling)XIR (Cache-Augmented Resampling)Chen J., Lian D., Li Y., Wang B., Zheng K. and Chen E. Cache-augmented inbatch importance resampling for training recommender retriever. In Advances in Neural Info…

一条sql了解MYSQL的架构设计

1 前言 对于一个服务端开发来说 MYSQL 可能是他使用最熟悉的数据库工具,然而,大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:它可以建库、建表、建索引,然后就是对里面的数据进行增删改查,语句…

MacOS/OSX docker修改已运行容器参数的方法

比如我们刚刚docker run了一个容器,然后里面已经配置了一些信息,装了一些东西,然后我发现我忘记了挂载一个文件夹,怎么修改他们呢? 第一个方法: export容器为镜像再import这个镜像 第二个方法: 把现有的容器提交成镜像,然后重新运行. 以上两种方法都相当于你把一台电…

配置服务器入栈

配置服务器入栈 上回传送门 书接上回 登录我们的服务器管理页面 点击入站列表->点击号 配置如下 注意: 协议是vless 域名是cloudflare上我们设置的二级域名 公钥文件路径就是我们SHH工具上root 文件夹下cret 文件夹下面的证书 公钥名就是我们的证书路径 密钥…

Spring Cloud Alibaba现在还值不值学 ?

6年前面试最常问的并且可以顺利拿到高薪的技能是 Dubbo ,2年前面试,只要你简历上有 Spring Cloud 项目的相关经验,肯定会打动面试官,现在呢?恐怕简历上有Dubbo和简单的Spring Cloud技术和经验是无法让面试官高看你的。…