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

Java入门:11.抽象类,接口,instanceof,类关系,克隆

1 JDK中的包

  • JDK = JRE + 开发工具集(javac.exe)

  • JRE = JVM + java类库

  • JVM = java 虚拟机

  • jdk中自带了许多的包(类) , 常用的有

    • java.lang 该包中的类,不需要引用,可以直接使用。 例如:Object , System , String

    • java.util

    • java.sql

    • java.net

    • java.io

    • java.text

2 抽象方法与抽象类

2.1 抽象方法

  • 抽象方法,就是不具体的方法。

  • 语法而言:哪里不具体? 没有方法体,具体的执行操作不知道

    由abstract关键字修饰,没有方法体的方法,称为抽象方法

    public void test1(){}
    ​
    public abstract void test1();

    逻辑而言:哪里不具体呢? 只清楚基本规则规范,但不确定具体的实现。

  • 抽象方法怎么用?

    • 抽象方法不能直接调用

    • 抽象方法必须被子类重写,实际使用的是子类重写的方法。(抽象方法可以作为规则)

      抽象方法不能被private修饰 ,不能被final修饰, 不能被static修饰

  • 抽象方法必须写在抽象类或接口中

2.2 抽象类

  • 由abstract关键字修饰的类,称为抽象类

    public class A{}
    public abstract class B{}

    抽象类也是类,可以有构造方法,普通属性,普通方法 和 抽象方法

  • 抽象类不能创建对象

  • 抽象类的主要作用就是定义抽象方法。

  • 抽象类必须被子类继承使用,并且子类要重写抽象类中的所有抽象方法,否则子类也是一个抽象类

  • 抽象类中可以不包含抽象方法,但意义不大。

3 接口

  • 接口是一个特殊的抽象类

  • 接口中只能有抽象方法和静态的公共常量,没有普通方法 ,也没有构造方法,不能创建对象

  • 接口使用interface关键字定义

    class A{}
    abstract class B{}
    interface C{}

    接口也必须被子类继承使用,子类继承接口称为 实现接口, 使用implements关键字完成类与接口的实现关系,子类被称为实现类

    interface A{}
    class B implements A{}

    子类实现接口后,需要重写接口中的所有抽象方法,否则子类也是抽象类

  • 子类可以实现多个接口

    interface A{}
    interface B{}
    class C implements A , B{}
  • 接口之间也可以继承,并支持多继承

    interface A{}
    interface B{}
    interface C extends A , B{}

扩展

  • 接口中的所有方法都是公共的抽象方法, 可以省略 public abstract

  • 接口中的所有属性都是公共的静态常量属性,可以省略public static final

interface A{void t1();   //public abstract void t1();int i = 10 ; //public static final int i = 10 ;
}

相关文章:

Java入门:11.抽象类,接口,instanceof,类关系,克隆

1 JDK中的包 JDK JRE 开发工具集(javac.exe) JRE JVM java类库 JVM java 虚拟机 jdk中自带了许多的包(类) , 常用的有 java.lang 该包中的类,不需要引用,可以直接使用。 例如&#xff1…...

【软件部署安装】OpenOffice转换PDF字体乱码

现象与原因分析 执行fc-list查看系统字体 经分析发现,linux默认不带中文字体,因此打开我们本地的windows系统的TTF、TTC字体安装到centos机器上。 安装字体 将Windows的路径: C:\Windows\Fonts 的中文字体,如扩展名为 TTC 与TT…...

工程师 - 开源硬件公司Adafruit介绍

https://www.adafruit.com/ https://github.com/adafruit 开源硬件公司 Adafruit 的发展历程 如果你是一名创客(Maker),那么你肯定听过 Adafruit;如果你在项目中使用过 Arduino,那么你应该也会知道 Adafruit。假如你没…...

PostgreSQL学习笔记五:数据库基本操作

在 PostgreSQL 中,您可以执行一系列基础操作来管理数据库、备份和恢复数据。以下是一些常用的命令和步骤: 创建数据库 使用以下命令创建新数据库: CREATE DATABASE database_name;您也可以在创建时指定数据库所有者和其他参数:…...

住房公积金 计算器-java方法

计算了一下房贷压力,以全额公积金贷款为例,贷款四十万,等额本金方式还款,房贷利率为2.85%,基本情况就是如下: 还款总额达到 提前还款的好处 按三十年计算,如果第一年借用亲朋好友的钱&#x…...

Spring-Smart-DI

参考文章 作用 用注解的方式动态切换实现类实现方式。 比如我们有多个消息中间件或多个短信服务商&#xff0c;需要动态切换的时候&#xff0c;无需自己写判断逻辑来进行服务商的切换。只用一套注解就可以解决问题 开始使用 引入依赖 <dependency><groupId>io…...

Python 在树莓派上实现WIFI连接

开发语言&#xff1a;Python 硬件环境&#xff1a;树莓派 4B 运行环境&#xff1a;Raspberry Pi OS 64-bit 连接WIFI还是比较简单的&#xff0c;用了好几个Python 库都效果不怎么理想&#xff0c;最后还是使用命令的方式是最自在的 先断开当前的连接 wlan0 可以替换成你当前…...

vmware下ubuntu18.04中使用笔记本的摄像头

步骤1&#xff1a;在windows中检查相机状态 win10系统中&#xff0c;在左下的搜索栏&#xff0c;搜索“相机”&#xff0c;点击进入即可打开相机&#xff0c;并正常显示图像。 注意&#xff1a;如果相机连接到了虚拟机&#xff0c;则不能显示正常。 步骤2&#xff1a;…...

【Linux】最基本的杂项设备驱动

MISC驱动简介 misc的意思是混合、杂项的&#xff0c;因此misc驱动也叫杂项驱动。当我们板子上的某些外设无法进行分类的时候就可以使用该项驱动。 所有杂项设备都共用一个主设备号&#xff08;10&#xff09;&#xff0c;不同的子杂项设备使用不同的子设备号。 重要接口 定…...

RadioGroup RadioButton底部导航栏

参考: https://blog.csdn.net/lu202032/article/details/117632709 activity_home.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://sch…...

SQL分类中的DQL

DQL&#xff08;Data Query Language&#xff09;:数据查询语言&#xff0c;用来查询数据库中表的记录。 一、DQL语法 编写顺序 执行顺序 SELECT 字段列表 5 FROM 表名列表 1 WHERE 条件列表 2 GROUP BY 分组字段列表 3 HAVING 分组后条件列表 4 ORDER BY 排…...

1.3.ReactOS系统 PAGED_CODE 宏函数的实现

#ReactOS系统 PAGED_CODE 宏函数的实现 ReactOS系统 PAGED_CODE 宏函数的实现 文章目录 PAGED_CODE 宏函数的实现 PAGED_CODE 宏函数的实现 #ifdef DBG#define PAGED_CODE() \if (VideoPortGetCurrentIrql() > 1 /* APC_LEVEL */) \{ \VideoPortDebugPrint(Error, "V…...

【论文速看】DL最新进展20241015-目标检测、图像超分

目录 【目标检测】【图像超分】 【目标检测】 [ECCV2024] LaMI-DETR: Open-Vocabulary Detection with Language Model Instruction 论文链接&#xff1a;https://arxiv.org/pdf/2407.11335 代码链接&#xff1a;https://github.com/eternaldolphin/LaMI-DETR 现有方法通过利…...

京准电钟:NTP时间服务器让大数据时钟同步

京准电钟&#xff1a;NTP时间服务器让大数据时钟同步 京准电钟&#xff1a;NTP时间服务器让大数据时钟同步 NTP是一种用于同步网络中设备时间的协议&#xff0c;广泛用于互联网和局域网中。NTP网络时间服务器则是基于NTP协议构建&#xff0c;为网络中的设备提供时间同步服务的服…...

SSL免费证书申请(七牛云/阿里云等)

最近运维的几个项目SSL证书要过期了&#xff0c;领导一直催促着要搞&#xff0c;然后也是在网上找了各种链接、各种方式&#xff08;谨防上当受骗&#xff09;、各种收费&#xff1b; 于是我记录一下我自己生成SSL证书的过程。 前几年我依稀记得免费时间有一年以上的&#xff…...

十二、结构型(代理模式)

代理模式&#xff08;Proxy Pattern&#xff09; 概念 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;代理对象在不改变目标对象功能的前提下&#xff0c;通过控制对目标对象的访问&#xff0c;来实现延迟加载、权限控制、日志记录等功能。代…...

使用 python 下载 bilibili 视频

本文想要达成的目标为&#xff1a;运行 python 代码之后&#xff0c;在终端输入视频链接&#xff0c;可自动下载高清 1080P 视频并保存到相应文件夹。 具体可分为两大步&#xff1a;首先&#xff0c;使用浏览器开发者工具 F12 获取请求链接相关信息&#xff08;根据 api 接口下…...

DevExpress WinForms中文教程:Data Grid - 如何点击获取信息?

在使用DevExpress WinForms的Data Grid之类控件时&#xff0c;可能需要实现自定义用户交互&#xff0c;例如显示数据行的上下文菜单&#xff0c;或者在双击一行时调用编辑表单。在这些情况下&#xff0c;您需要在指定的坐标处标识网格元素。 在本教程中&#xff0c;您将学习如…...

真空牛肉滚揉机的优点:

‌真空滚揉机是一种用于食品加工的设备&#xff0c;主要用于肉类深加工&#xff0c;如肉食制品和低温火腿的生产。‌ 它通过滚揉、按压和腌制的过程&#xff0c;在真空状态下将原料肉与辅料、添加剂均匀混合&#xff0c;以提高肉制品的质量和口感‌。 真空滚揉机的工作原理是利…...

【物流配送中心选址问题】基于退火算法混合粒子群算法

课题名称&#xff1a; 基于退火算法混合粒子群算法的物流配送中心选址问题 改进方向&#xff1a;模拟退火算法优化粒子群算法 代码获取方式&#xff08;付费&#xff09;&#xff1a; 模型说明&#xff1a; 待补充 Matlab仿真结果&#xff1a; 1. 模型优化后的仿真结果 2…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...