4月4号总结

java学习

一.接口

1.介绍

定义接口需要使用到关键字interface去定义接口。

格式如下:

类与接口的关系不是继承,而是实现,用关键字 implements ,格式如下:

这个类去实现接口,其中的关系就相当于,接口是类的“干爹”,因为类可以实现多个接口,而继承虽然可以多层继承,但是父类只能有一个,而接口作为“干爹”的关系可以有很多个。

一个类可以同时继承父类,也可以同时实现多个接口。

但是要分清楚主次关系,当亲爹与干爹有相同的方法名时,调用子类的方法会优先调用亲爹的方法。

public class test {public static void main(String[] args) {B.run();}
}interface A {
static void run(){System.out.println("我是干爹");
}
}class D{static void run(){System.out.println("我是亲爹");}
}class B extends com.learn.java.D implements A{}

2.特点

接口里面不能有成员变量,它会默认加上 public static final。

我们在定义的时候一定要赋初值,不然会报错。

   在JDK7.0版本及其之前版本中,接口中仅支持公有的抽象方法:

                public abstract 返回值类型 方法名();  

        Δ事实上,接口中的方法默认就是公有抽象方法,因此在接口中定义抽象方法时,可以省略掉abstract关键字。

   从JDK8.0开始,接口中可以由默认方法和静态方法:

                默认方法——public default 返回值类型 方法名() {

                }

                静态方法——public static 返回值类型 方法名() {

                }

       需要注意的是,想定义默认方法必须在前面添加default关键字,因为接口中的方法如果你什么都不写,默认是公有的抽象的方法。默认方法可以有方法体,且不需要实现类去实现,其实就是我们平时见到的普通的成员方法。但是默认方法是可以被实现类重写的。default关键字只能在接口中使用,就算实现类要重写默认方法,实现类中重写后的方法也不能添加default修饰符,不然IDEA报错。

        JDK9.0以后,接口中可以有私有方法 :

                private 返回值类型 方法名() {

                }

注意:接口不能被实例化,也就是不能创建对象。

接口的子类可以是抽象类,也可以是普通类(需要实现接口的所有方法)。

二.泛型

定义:泛型是Java编程语言中的一个特性,它允许在编写类、接口和方法时使用参数化类型。通过使用泛型,可以使得代码更加灵活、可重用,并提高类型安全性。

如果不使用泛型,集合可以加入任意类型的数据。

  ArrayList k=new ArrayList();k.add("12");k.add("1212");k.add(new Student());k.add(12);

并且不会报错,但是我们在处理数据时,有时需要将数据统一类型,在输出时。

虽然在写代码时没有报错,但是在运行会出现错误,所以我们需要给集合定义一个我们需要的泛型

这时就会在外面写代码的时候就发现错误。

总之,泛型是Java编程语言中的一项重要特性,它提供了一种灵活、类型安全的方式来处理不同类型的数据,并提高了代码的可重用性和可读性。

下面是泛型的一些特点:

  1. 参数化类型:泛型允许在类、接口或方法中使用参数,这些参数可以用于定义类型。这样一来,类、接口或方法可以与不同的数据类型进行交互。

  2. 类型安全:泛型在编译时提供类型检查,确保类型的一致性。这可以在编译时捕获一些类型错误,而不是在运行时出现异常。

  3. 代码重用:泛型提供了一种通用的方法来编写代码,可以在不同类型之间进行重用。这使得代码更加模块化和可维护。

  4. 减少类型转换:使用泛型可以减少代码中的类型转换,因为编译器会确保类型的一致性,不再需要手动转换类型。

  5. 提高可读性:泛型使得代码更加清晰易懂,因为可以直观地看出代码中使用的数据类型。

  6. 集合框架支持:Java集合框架中的大部分类都使用了泛型,例如 ArrayList<T>HashMap<K, V> 等。这使得集合中存储的元素类型更加明确,提高了代码的安全性和可读性。

  7. 自定义泛型类、接口和方法:除了使用Java标准库中提供的泛型类型外,开发人员还可以创建自己的泛型类、接口和方法,以满足特定需求。

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

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

相关文章

基于Socket简单的UDP网络程序 vs 简单的TCP网络程序

⭐小白苦学IT的博客主页 ⭐初学者必看&#xff1a;Linux操作系统入门 ⭐代码仓库&#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 1.前言 网络编程前言 网络编程是连接数字世界的桥梁&#xff0c;它让计算机之间能够交流信息&#xff0c;为我们的生活和工作带来便利…

蓝桥杯python组真题练习1

目录 1.单词分析 2.成绩统计 3.门牌制作 4.卡片 5.跑步训练 6.蛇形填数 7.时间显示 1.单词分析 1.单词分析 - 蓝桥云课 (lanqiao.cn) s list(input()) maxx 0 for i in s:num s.count(i)if num>maxx:sm imaxx numif num maxx:if ord(sm)>ord(i):sm i print…

考研经验与科目学习建议

前言 24考研刚刚结束&#xff0c;成功上岸&#xff0c;回想起刚开始的时候的迷茫&#xff0c;加上因为迷茫而被卖书的坑的几百块钱。感慨万千&#xff0c;所以决定写下这篇文章。回想当时&#xff0c;因为笔者零基础&#xff0c;加上作为一名专升本的学生&#xff0c;惶恐因为…

如何锁定鼠标光标在水平、垂直或45度对角线模式下移动 - 鼠标水平垂直移动锁定器简易教程

在我们进行精细工作例如如创建图标和图形设计时&#xff0c;通常需要我们对鼠标移动进行精确控制。一旦向左或向右轻微移动&#xff0c;都可能导致设计出错。若出现不必要的错误&#xff0c;我们极有可能不得不重新开始&#xff0c;这会令人感到非常沮丧。这种情况下&#xff0…

SAP ERP实施有几个阶段?工博科技带来SAP系统实施项目全流程介绍

根据SAP实施方法论&#xff0c;SAP系统实施流程一共分为五个主要项目阶段&#xff1a;项目准备、蓝图设计、系统实现、上线准备、上线后支持。在项目启动前&#xff0c;双方必须对项目实施过程中各阶段所涉及的任务与交付件以及项目完成标志达成共识&#xff0c;各阶段项目交付…

微信小程序 python+django口腔牙科问诊系统 springboot设计与实现_1171u

口腔助手”小程序主要有管理员&#xff0c;医生和用户三个功能模块。以下将对这三个功能的作用进行详细的剖析。 本文通过采用B/S架构&#xff0c;uniapp框架、MySQL数据库&#xff0c;结合国内“口腔助手”管理现状&#xff0c;开发了一个基于微信小程序的“口腔助手”小程序。…

TCP客户端及服务器端开发实践

一、TCP客户端及服务器端开发实践 1、TCP网络应用程序开发分类 ① TCP客户端应用程序开发 ② TCP服务器端应用程序开发 客户端程序是指运行在用户设备上的程序&#xff0c;服务端程序是指运行在服务器设备上的程序&#xff0c;专门为客户端提供数据服务。那如何记忆呢&…

软考--软件设计师(软件工程总结1)

目录 1.定义 2.软件生存周期 3.软件过程&#xff08;即软件开发中遵循的一系列可预测的步骤&#xff09; ​编辑4.软件开发模型 5.需求分析&#xff08;软件需求分析&#xff0c;系统需求分析或需求分析工程&#xff09; 6. 需求工程 7.系统设计 8.系统测试 1.定义 软件…

【开发环境】Mac 安装 Visual Studio Code ( VSCode 简介 | 下载 VSCode | 安装 VSCode | 安装中文语言包 )

文章目录 一、Visual Studio Code 简介二、MAC 安装 Visual Studio Code1、下载 Visual Studio Code2、安装 Visual Studio Code3、安装中文语言包4、编辑 html 并运行 一、Visual Studio Code 简介 Visual Studio Code 简称 VSCode , 是 微软 开发的一款 轻量级 / 跨平台 的代…

腾讯云服务器4核8g配置好不好?用它干啥使?

腾讯云4核8G服务器多少钱&#xff1f;腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月&#xff0c;活动页面 txybk.com/go/txy 活动链接打开如下图所示&#xff1a; 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器&#xff0c;详细配置为&#xff1a;轻量4核…

【Pt】马灯贴图绘制过程 05-铁丝与渲染出图

目录 效果 步骤 一、基本材质 二、浮尘 三、渲染 效果 步骤 一、基本材质 CtrlAlt鼠标右键选中指定的纹理集 在智能材质中将“Iron Forged Old”加入图层 将智能材质“Iron Forged Old”文件夹打开&#xff0c;将图层“Base”和“Edge”的基本颜色改暗一点 二、浮尘 新…

746.Leetcode 使用最小花费爬楼梯

746.Leetcode 使用最小花费爬楼梯 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯…

BUUCTF-MD5

BUUCTF-MD5 1 注意&#xff1a;得到的 flag 请包上 flag{} 提交 27120bd8-e273-4528-97a9-28dcebe236de.zip flag{admin1} e00cf25ad42683b3df678c61f42c6bdahttps://www.cmd5.com/

pycharm和Spyder多行注释快捷键

1.选取注释内容 2.pycharm&#xff1a;使用Ctrl/ 3.Spyder&#xff1a;使用Ctrl1 效果图

IDEA配置本地Maven(解决依赖下载缓慢)

1.下载Maven Maven下载页 根据需要选择下载其中一个&#xff0c;我选了zip格式的 将下载好的apache-maven-3.9.5解压到你想要的目录下 2.配置系统环境 设置系统环境变量 MAVEN_HOME 为安装路径的bin目录 变量名&#xff1a;MAVEN_HOME 变量值&#xff1a;写你的 apache-m…

Docker 哲学 - docker swarm

Docker Swarm 模式下的集群管理和服务恢复机制 Docker Swarm 是 Docker 的集群管理和编排功能。在 Swarm 模式下&#xff0c;你可以将多个 Docker 主机组合成一个虚拟主机&#xff0c;称为 Swarm 集群。Swarm 集群由一个或多个管理节点&#xff08;manager nodes&#xff09;和…

故障诊断 | 一文解决,GCN图卷积神经网络模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,GCN图卷积神经网络模型的故障诊断(Matlab) 模型描述 GCN(Graph Convolutional Network)是一种基于图结构数据进行卷积操作的神经网络模型。它在处理图数据上展现了很好的性能,特别适用于节点分类、图分类和图生成等任务。 GCN模…

51入门之LED

目录 1.配置文件 2.点亮一个LED 2.1单个端口操作点亮单个LED 2.2整体操作点亮LED 3.LED闪烁 4.LED实现流水灯 4.1使用for循环和移位实现 4.1.1移位操作符 4.1.2使用移位操作和for循环实现 4.2使用移位函数实现LED流水灯 众所周知&#xff0c;任何一个硬件工程师…

基于机器学习的木马检测模型的设计与实现(论文)_kaic

摘 要 科技的发展带来了人们生活的改变&#xff0c;近年来我国网民已突破十亿人口&#xff0c; 而且在后疫 情时代&#xff0c; 经历了疫情时期的一系列线上活动&#xff0c; 人们对网络的依赖比以往任何时期都要高 得多。高频次的上网行为也带来了一系列安全问题&#xff…

Cisco路由器配置IPv6 Manual隧道

Cisco路由器配置IPv6 Manual隧道 IPv6与IPv4共存的方式 IPv6与IPv4共存方式大致有三种&#xff1a; 双栈&#xff1a;要求网络中所有设备均同时支持IPv4和IPv6转换&#xff1a;转换这种方式将IPv6协议的报头转换成IPv4协议报头。隧道&#xff1a;假定两个IPv6节点要使用IPv6…