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

Java接口和类

package chapter04;public class Java22_Object_接口 {public static void main(String[] args) {// TODO 面向对象 - 接口// 所谓的接口,可以简单理解为规则、规范// 基本语法:interface 接口名称 { 规则属性,规则的行为 }// 接口其实是抽象的// 规则的属性必须为固定值,并且不能修改// 属性和行为的访问权限必须为公共的,因为规则就是要大家都能够看得到// 属性应该是静态的,与具体对象无关// 行为应该是抽象的,应该要让具体对象来决定具体怎么来做这个行为// 那行为是抽象的,那接口就是抽象的,那也根本就构成不了具体的对象// 接口(规则)和类是两个层面的东西// 类可以构建对象,接口跟具体对象都没有关系,只是要让那个对象遵从那个规则(接口)// 接口可以继承多个其他接口,但是类只能继承一个父类// 类的对象需要遵循规则(接口),在java中,这个遵循,称之为实现,类需要实现接口,Computer computer = new Computer();Light light1 = new Light();computer.usb1 = light1;  // 把电灯插入到电脑的usb1接口Light light2 = new Light();computer.usb2 = light2;  // 把电灯插入到电脑的usb2接口computer.powerSupply();  // 电脑给电灯供电}
}interface USBInterface {}// USB供电接口
interface USBSupply extends USBInterface {  // 继承USB接口,要遵循其规范void powerSupply();  // 接口中的行为方法是抽象的
}// USB接电接口
interface USBReceive extends USBInterface {  // 继承USB接口,要遵循其规范void powerReceive();  // 接口中的行为方法是抽象的
}// 具体的Computer电脑类就来实现USB的供电方式,使其符合USB接口供电规则,符合USB接口供电规范
class Computer implements USBSupply {// 电脑中有很多的接口,比如下面的usb1和usb2public USBReceive usb1;public USBReceive usb2;public void powerSupply() {System.out.println("电脑提供能源");usb1.powerReceive();  // 让usb1的设备来接受能源usb2.powerReceive();  // 让usb2的设备来接受能源}
}// 小台灯来接受能源,但它要符合USB接口接电规则
class Light implements USBReceive {public void powerReceive() {System.out.println("电灯接受能源");}
}

结果:
在这里插入图片描述

相关文章:

Java接口和类

package chapter04;public class Java22_Object_接口 {public static void main(String[] args) {// TODO 面向对象 - 接口// 所谓的接口,可以简单理解为规则、规范// 基本语法:interface 接口名称 { 规则属性,规则的行为 }// 接口其实是抽象…...

前端文件预览汇总

一、vue中预览word、excel、pdf: vue-office vue-office支持多种文件(docx、excel、pdf)预览的vue组件库,支持vue2/3,也支持非Vue框架的预览。 特点: 一站式:提供word(.docx)、pdf、excel(.xlsx, .xls)多种文档在线…...

银河麒麟V10 安装tigervncserver

银河麒麟V10 安装tigervncserver 银河麒麟V10安装tigervnc-server步骤: 提示,本安装环境:arm飞腾2000,主机开机进入root用户模式。 1、安装server安装包 #rpm -i tigervnc-server-1.10.1-5.p05.ky10.aarch64.rpm 2、控制台输入 …...

SKM Power*Tools 10.0

SKM Power*Tools 10.0是功能强大的电气电力系统分析设计解决方案!综合软件提供强大的功能和领先的技术,在检查、计算、负载分配、流量、瞬态稳定性等多个方面提供领先的支持,可对不同的安全设备、系统进行评估分析和比较,使用 Pow…...

查看视频时间基 time_base

时间基、codec, 分辨率,音频和视频的都一样,才可以直接使用ffmpeg -f concat -i file.txt 方式合并。 On Thu, Dec 03, 2015 at 21:54:53 0200, redneb8888 wrote: I am looking for a way to find the time base of a stream (video or audio), $ ffpr…...

数据结构 —— 最小生成树

数据结构 —— 最小生成树 什么是最小生成树Kruskal算法Prim算法 今天我们来看一下最小生成树: 我们之前学习的遍历算法并没有考虑权值,仅仅就是遍历结点: 今天的最小生成树要满足几个条件: 考虑权值所有结点联通权值之和最小无环…...

初学Spring之 JavaConfig 实现配置

使用 Java 方式配置 Spring 写个实体类: Component 表示这个类被 Spring 接管了,注册到了容器中 package com.demo.pojo;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;Component //…...

在Java项目中实现实时日志分析

在Java项目中实现实时日志分析 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 随着互联网应用的发展,实时日志分析成为了保证系统稳定性、性能优化…...

Git基础知识与常用命令指南

这是一个Git基础知识和常用命令的简要指南,涵盖了日常开发中最常用的操作。你可以将这个指南保存下来,作为日常工作的参考。 目录 基础篇1. Git基本概念2. 配置Git3. 创建仓库4. 基本的工作流程5. 分支操作6. 查看历史7. 撤销更改8. 远程仓库操作 Git进阶知识与技巧指南1. 分…...

第8章:Electron 剪贴版和消息通知

在本章中,我们将介绍如何在Electron应用中与操作系统进行集成。这些操作包括剪贴板操作、通知系统、原生对话框等功能。 8.1 剪贴板操作 Electron 提供了 clipboard 模块,允许我们在应用中访问和操作剪贴板内容。以下是一些基本的剪贴板操作示例。 8.…...

Android zygote访谈录

戳蓝字“牛晓伟”关注我哦! 用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章,技术文章也可以有温度。 本文摘要 本文以访谈的方式来带大家了解zygote进程,了解zygote进程是啥?它的作用是啥?它是如何一步…...

nuxt、vue树形图d3.js

直接上代码 //安装 npm i d3 --save<template><div class"d3"><div :id"id" class"d3-content"></div></div> </template> <script> import * as d3 from "d3";export default {props: {d…...

香橙派AIpro测评:yolo8+usb鱼眼摄像头的Camera图像获取及识别

一、前言 近期收到了一块受到业界人士关注的开发板"香橙派AIpro",因为这块板子具有极高的性价比&#xff0c;同时还可以兼容ubuntu、安卓等多种操作系统&#xff0c;今天博主便要在一块832g的香橙派AI香橙派AIpro进行YoloV8s算法的部署并使用一个外接的鱼眼USB摄像头…...

大华设备接入GB28181视频汇聚管理平台EasyCVR安防监控系统的具体操作步骤

智慧城市/视频汇聚/安防监控平台EasyCVR兼容性强&#xff0c;支持多协议接入&#xff0c;包括国标GB/T 28181协议、GA/T 1400协议、部标JT808协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SDK等&#xff0c;并能对外分发RTMP、…...

Laravel包开发指南:构建可重用组件的艺术

标题&#xff1a;Laravel包开发指南&#xff1a;构建可重用组件的艺术 Laravel不仅是一个强大的Web应用框架&#xff0c;它的包&#xff08;Package&#xff09;系统也为开发者提供了构建和共享可重用组件的能力。通过包开发&#xff0c;开发者可以轻松地扩展Laravel的功能&am…...

JavaDS预备知识

集合框架 Java 集合框架 Java Collection Framework &#xff0c;又被称为容器 container &#xff0c;是定义在 java.util 包下的一组接口 interfaces和其实现类 classes 。 其主要表现为将多个元素 element 置于一个单元中&#xff0c;对数据进行创建(Create)、读取(Retrieve…...

日常学习--20240705

1、IO流 按照IO操作的数据类型分为字节流和字符流&#xff1a; 字节流&#xff1a;又分为输入流&#xff08;其他程序传递过来的数据&#xff0c;读取流中的数据&#xff09;和输出流&#xff08;往流中写数据&#xff0c;传递给其他程序&#xff09;;可以操作二进制文件&…...

Java中初始化一个List的多种方式

1.最原始的方式&#xff1a;先创建&#xff0c;然后再添加元素 List<String> list new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry");2.使用Arrays.asList 这是一种快速方便的方式&#xff0c;直接…...

BeikeShop多国语言多货币商城系统源码基于Laravel框架

BeikeShop是基于 Laravel 开发的一款开源商城系统&#xff0c;支持多语言商城 多货币商城 100%全开源 ChatGPT OpenAI B2C商城系统 H5商城 PHP商城系统 商城源码 PC商城 跨境电商系统 跨境商城系统 电商商城系统 Laravel 10 框架开发系统&#xff0c;支持插件市场。 Event 机制…...

gradle构建工具

setting.gradle // settings.gradle rootProject.name my-project // 指定根项目名称include subproject1, subproject2 // 指定子项目名称&#xff0c;可选jar包名称 方式一 jar {archiveBaseName my-application // 设置 JAR 文件的基本名称archiveVersion 1.0 // 设置…...

MediaPipe Holistic实战效果:一张照片生成全身骨骼图,效果超乎想象

MediaPipe Holistic实战效果&#xff1a;一张照片生成全身骨骼图&#xff0c;效果超乎想象 1. 引言&#xff1a;当AI遇见全身感知 想象一下&#xff0c;你只需要上传一张普通的全身照片&#xff0c;AI就能自动识别出你的面部表情、手势动作和身体姿态&#xff0c;并生成一张精…...

TVM构建系统详解:CMake与Makefile配置最佳实践

TVM构建系统详解&#xff1a;CMake与Makefile配置最佳实践 引言&#xff1a;TVM构建系统的核心挑战 深度学习编译器TVM&#xff08;Tensor Virtual Machine&#xff09;作为一个跨平台、多后端的开源项目&#xff0c;其构建系统面临着独特的复杂性。开发者需要在不同架构&#…...

TSLint格式化器完全指南:打造个性化的代码检查报告

TSLint格式化器完全指南&#xff1a;打造个性化的代码检查报告 【免费下载链接】tslint :vertical_traffic_light: An extensible linter for the TypeScript language 项目地址: https://gitcode.com/gh_mirrors/ts/tslint TSLint作为TypeScript生态系统中最重要的代码…...

UCF-SST-CitySim数据集:面向智能交通研究的高精度轨迹数据解决方案

UCF-SST-CitySim数据集&#xff1a;面向智能交通研究的高精度轨迹数据解决方案 【免费下载链接】UCF-SST-CitySim1-Dataset 项目地址: https://gitcode.com/gh_mirrors/ucf/UCF-SST-CitySim-Dataset 如何解决复杂道路场景的数据缺失问题&#xff1f;——CitySim的价值定…...

形态学操作进阶:手把手教你设计Hit-or-Miss内核检测十字/直角结构

形态学操作进阶&#xff1a;手把手教你设计Hit-or-Miss内核检测十字/直角结构 在计算机视觉领域&#xff0c;形态学操作一直是图像处理中不可或缺的技术手段。其中&#xff0c;Hit-or-Miss变换作为一种高级形态学操作&#xff0c;能够精准定位二值图像中的特定结构模式。想象一…...

多租户下的系统基础表设计

多租户下的系统基础表设计在设计 多租户进销存系统&#xff08;SaaS&#xff09; 时&#xff0c;核心是 租户隔离 权限控制 组织结构。 一般推荐的设计是 “租户 → 机构 → 角色 → 用户” 的层级结构&#xff0c;同时所有业务数据都带 tenant_id。租户表&#xff08;Tenant…...

基于RAG的智能客服系统实战:从架构设计到生产环境优化

最近在做一个智能客服系统的升级项目&#xff0c;之前用规则引擎维护起来太痛苦了&#xff0c;纯用大模型又贵又不准。经过一番折腾&#xff0c;最终用RAG&#xff08;检索增强生成&#xff09;技术搞定了&#xff0c;效果提升非常明显。今天就来分享一下从架构设计到上线优化的…...

如何高效优化多语言模型:专业部署的完整策略

如何高效优化多语言模型&#xff1a;专业部署的完整策略 【免费下载链接】paraphrase-multilingual-MiniLM-L12-v2 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/paraphrase-multilingual-MiniLM-L12-v2 你是否在部署多语言文本嵌入模型时遭遇过"显存…...

游戏原画效率提升50%:Pixel Fashion Atelier在角色装备概念图批量生成中的应用

游戏原画效率提升50%&#xff1a;Pixel Fashion Atelier在角色装备概念图批量生成中的应用 1. 传统游戏原画设计的痛点 游戏开发过程中&#xff0c;角色装备设计往往是最耗时的环节之一。传统工作流程中&#xff0c;美术团队需要&#xff1a; 手工绘制数十种装备变体反复修改…...

用U8g2库玩转OLED:Arduino显示动态变量+自定义图标的5个实用技巧

用U8g2库玩转OLED&#xff1a;Arduino显示动态变量自定义图标的5个实用技巧 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和紧凑尺寸成为物联网设备和交互式项目的首选。U8g2库作为Arduino平台上最强大的显示驱动库之一&#xff0c;其灵活性和功能丰富性远超基础…...