当前位置: 首页 > news >正文

Java-封装、继承、多态

封装

访问控制权限又成为“封装”,是面向对象三大特征中的一种。核心是,只对需要的类可见。

继承

继承是所有OOP(Object Oriented Programming)语言和Java语言都不可或缺的一部分。

只要创建一个类,就隐式继承自Object父类。如果指定了父类,那么父类就继承于Object类。

多态

指的是同一个行为具有多个不同表现形式。多态的实现具有三种重要条件:

  • 继承
  • 重写父类方法
  • 父类引用指向子类对象
public class Fruit {int num;public void eat(){System.out.println("eat Fruit");}
}public class Apple extends Fruit{@Overridepublic void eat(){super.num = 10;Ststem.out.println("eat " + num + " Apple");}public static void main(String[ args]){Fruit fruit = new Apple(); // 这就是多态,父类引用指向子类对象,因为Apple继承于Fruit,并且重写了eat方法,所以能够表现出来多种状态的形式。fruit.eat();}
}

组合

就是将对象引用放在新类中。组合是提高类对的复用性的一种方式。如果希望类更具有扩展性,多用组合,少用继承

public class dinner {private String name;private Fruit fruit;
}public class Fruit {private String name;private String color;
}

组合和继承的区别

代理

除了继承和组合外,另外一种关系模型成为“代理”。

A想要调用B类的方式,A不直接调用,A会在自己的类中创建一个B对象的代理,再有代理代用B的方法。

向上/向下转型

  • 向上转型:通过子类对象(小范围)转化为父类对象(大范围),这种转换是自动完成的,不用强制。
  • 向下转型:通过父类对象(大范围)实例化子类对象(小范围),这种转换不是自动完成的,需要强制指定。

static

static是Java中的关键字,它的意思是“静态的”。可以用来修饰成员变量、方法、代码块。

  • 静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序的执行期间都有效。
  • 静态方法,该方法可以直接通过“类型.方法名”进行调用。静态方法中不能访问类的非静态成员、方法。
  • 静态代码块,用于类的初始化操作。进而提升程序的性能(静态代码块随着类的加载而执行,很多时候将只需要进行一次的初始化操作放在static代码块中)。

final

代表最终的,不可改的。用来修饰类、变量、方法。

  • final修饰类时,表面这个类不可被继承。final类中方法,会被隐式的final修饰。
  • final修饰方法时,表面这个方法不能被子类重写。
  • final修饰变量时,有来两种情况。
    • 修饰基本数据类型,表示该数据类型的值不可被修改。
    • 修饰引用类型,表示该引用不可再指向另外一个对象。

相关文章:

Java-封装、继承、多态

封装 访问控制权限又成为“封装”,是面向对象三大特征中的一种。核心是,只对需要的类可见。 继承 继承是所有OOP(Object Oriented Programming)语言和Java语言都不可或缺的一部分。 只要创建一个类,就隐式继承自Obje…...

问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)

为了将灰度图像表示为频谱图,我们需要进行以下步骤: 加载图像并将其转换为灰度图像。对图像进行二维离散傅里叶变换。将变换结果表示为幅度谱和相位谱。可以对幅度谱和相位谱进行可视化,以查看频率分布。对幅度谱和相位谱进行逆变换&#xf…...

恢复谷歌翻译的究极方法

谷歌翻译为什么会失效,我想各位在去年11月的时候就知道了。可是要怎么解决失效的问题呢?之前我们是通过手动Ping可以连接的ip各位可能觉得麻烦,心里觉得什么档次还要我手动ping就没有可以自动扫描的吗?还别说真的有我最近发现一个…...

string函数以及string常用接口

本文介绍的是C关键字string中一些重要用法,以及各种字符串序列的处理操作 ——飘飘何所似,天地一沙鸥 文章目录前言一、string(字符串类)二、string类对象的容量操作2.1 size/length2.2 capacity2.3 empty/clear2.4 resize/reser…...

分享一篇由C语言实现《数据结构》无头无循环单链表

三月,你好,各位csdn uu们好 文章目录前言一、何为单链表二、单链表基本操作(增,删,查,改,销毁,遍历)1.查找与修改、销毁与遍历2.链表插入与删除操作三、单链表 VS 顺序表…...

C盘爆满?两个超简单的解决办法

我们在使用电脑的过程中,经常容易出现C盘爆红,反而其他盘还有大量可用空间的情况。为什么会这样呢?其实主要就两种原因:一是电脑使用习惯不好,不管什么软件都默认安装在C盘,大文件又喜欢放在桌面&#xff0…...

ThreadLocal

ThreadLocalThreadLocalMapgetsetremove内存泄漏key用强/弱引用entry继承了弱引用ThreadLocal 一个对象的所有线程会共享其全局变量——>线程不安全 解决方式: 方式一:同步机制,加锁(时间换空间) 方式二&#xff1a…...

Java基础:JDK7-时间Date

JDK7以前时间相关类 1.Date Date date new Date(); , sout(date)得到的是现在所处位置的时间 Date date new Date(0L); , sout(date)得到的是时间原点也就是1970年1月1日08:00(东八区). date.setTime(1000L); sout(date)得到的是时间原点后一秒钟的时间 long time date.g…...

什么是IP地址?

IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一种地址,叫做“IP 地址”。由于有这种地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。…...

4年经验之谈,什么是接口测试?怎样做接口测试?

一、什么是接口?【文末学习资源分享】赶紧嫖!冲!!!! 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过…...

普通指针扫盲

一、什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。 CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存 中的一个指定数据…...

深度学习笔记:神经网络权重确定初始值方法

神经网络权重不可为相同的值,比如都为0,因为如果这样网络正向传播输出和反向传播结果对于各权重都完全一样,导致设置多个权重和设一个权重毫无区别。我们需要使用随机数作为网络权重 实验程序 在以下实验中,我们使用5层神经网络…...

关于 python 的异常使用说明 (python 的文件和异常)

文章目录异常1. 处理异常 ZeroDivisionError 异常2. 使用 try-except 代码块3. 使用异常避免崩溃4. else 代码块5. 处理 FileNotFoundError 异常6. 分析文本7. 失败时一声不吭异常 pyhong 使用被异常成为异常的特殊对象来管理程序执行期间发生的错误。 每当发生让 python 不知所…...

Spark RDD持久化

RDD Cache缓存 RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以序列化的形式缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供…...

【Linux】Linux系统安装Python3和pip3

1.说明 一般来说Linux会自带Python环境,可能是Python3或者Python2,可能有pip也可能没有pip,所以有时候需要自己安装指定的Python版本。Linux系统下的安装方式都大同小异,基本上都是下载安装包然后编译一下,再创建好软…...

用java进行base64加密

首先定义一组密钥,加密和解密使用同一组密钥private final String key "hahahahahaha";也可以随机生成密钥/*** 生成随机密钥* param keySize 密钥大小推荐128 256* return* throws NoSuchAlgorithmException*/public static String generateSecret(int keySize) th…...

torch函数合集

torch.tensor() 原型:torch.tensor(data, dtypeNone, deviceNone, requires_gradFalse) 功能:其中data可以是:list,tuple,NumPy,ndarray等其他类型,torch.tensor会从data中的数据部分做拷贝(而不是直接引用),根据原始数据类型生成相应类型的torch.Tenso…...

AcWing算法提高课-3.1.2信使

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 战争时期&#xff0c;前线有 nnn 个哨所&#xff0c;每个哨所可能会与其他若干个哨所之间有通信联系。 信使负责在哨所之间传递信息&#xff0c;当然&#xff0c;…...

Paddle OCR Win 11下的安装和简单使用教程

Paddle OCR Win 11下的安装和简单使用教程 对于中文的识别&#xff0c;可以考虑直接使用Paddle OCR&#xff0c;识别准确率和部署都相对比较方便。 环境搭建 目前PaddlePaddle 发布到v2.4&#xff0c;先下载paddlepaddle&#xff0c;再下载paddleocr。根据自己设备操作系统进…...

杂谈:数组index问题和对象key问题

面试题一&#xff1a; var arr [1, 2, 3, 4] 问&#xff1a;arr[1] ?; arr[1] ?答&#xff1a;arr[1] 2; arr[1] 2 这里可以再分为两个问题&#xff1a; 1、数组赋值 var arr [1, 2, 3, 4]arr[1] 10; // 数字场景 arr[10] 1; // 字符串场景 arr[a] 1; // 字符串…...

网站建设公司推荐:业内公认高水准网站制作公司一览

在数字化竞争日益激烈的2026年&#xff0c;企业官网已从单纯的信息展示窗口升级为品牌战略核心载体与业务增长引擎。面对市场上众多的网站建设服务商&#xff0c;企业如何精准匹配需求&#xff1f;本文作为第三方深度测评&#xff0c;从高端定制、模板建站、低成本快速上线三类…...

MLX90614红外测温传感器:从原理到Arduino实战应用指南

1. 项目概述&#xff1a;从接触式到非接触式的测温革新在嵌入式开发和物联网项目中&#xff0c;温度测量是一个永恒的主题。从传统的热敏电阻、DS18B20&#xff0c;到热电偶&#xff0c;我们习惯了将探头紧贴甚至刺入被测物体来获取读数。但你是否遇到过这样的困境&#xff1a;…...

SAP UI5 里没有 BehaviorSubject,但有更贴近企业 UI 的状态流

问题: SAP UI5 的开发技术里,有类似 Angular 中 BehaviorSubject 的概念和用法? 我今天理解这个问题时,不能直接问 SAP UI5 里有没有一个类叫 BehaviorSubject,因为这个问法会把 Angular 和 SAP UI5 的编程范式强行拉到同一个坐标系里。更准确的问题应该是,SAP UI5 里有…...

企业邮箱代理:谷歌企业邮箱安全防护架构与合规应用解析

前言谷歌企业邮箱凭借全球通用 IP 信誉、海外节点覆盖广等优势&#xff0c;成为外贸企业对接欧美、东南亚海外客户的首选办公邮箱。但国内企业直接使用&#xff0c;容易出现登录卡顿、邮件发送延迟、大批量开发信被限制等问题&#xff0c;做好针对性优化&#xff0c;才能最大化…...

WarcraftHelper:魔兽争霸3终极兼容性增强插件完整指南

WarcraftHelper&#xff1a;魔兽争霸3终极兼容性增强插件完整指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为《魔兽争霸…...

运维开发必备:5分钟搞定CentOS 7下ncurses库的安装与基础使用

运维开发必备&#xff1a;5分钟搞定CentOS 7下ncurses库的安装与基础使用 在服务器运维和自动化工具开发中&#xff0c;命令行界面&#xff08;CLI&#xff09;的高效交互能力往往决定了管理效率的上限。当我们需要在无GUI环境的Linux服务器上开发监控面板、配置向导或系统管理…...

NotebookLM如何让AI替你精准定位审稿人潜台词?——基于572份Accepted回复文本的NLP语义聚类分析

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM如何让AI替你精准定位审稿人潜台词&#xff1f;——基于572份Accepted回复文本的NLP语义聚类分析 从“Minor Revision”到“Strong Accept”的语义解码 NotebookLM 的文档锚定&#xff08;D…...

基于加速度计的体感音乐控制器:用MakeCode与Circuit Playground Express实现交互式乐器

1. 项目概述&#xff1a;当硬件编程遇见音乐创作 如果你对嵌入式开发、物理计算或者音乐技术感兴趣&#xff0c;但又觉得从零开始门槛太高&#xff0c;那么这个项目可能就是为你量身定做的。今天我们来聊聊如何用一块巴掌大的开发板——Adafruit的Circuit Playground Express&a…...

[A2A协议与实现-03]从Protobuf消息详解A2A协议四大核心操作

接下来我们将介绍A2A协议中定义的核心操作列表。这些操作构成了Agent之间交互的基础&#xff0c;每个操作都对应一个特定的功能&#xff0c;允许Agent以标准化的方式进行通信和协作。之前已经说过&#xff0c;A2A协议的所有操作定义在A2AService这个gRPC服务中。我们将逐一介绍…...

如何用VR-Reversal将3D VR视频高效转换为普通2D格式:完整实用指南

如何用VR-Reversal将3D VR视频高效转换为普通2D格式&#xff1a;完整实用指南 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcod…...