Java接口和类

news2024/11/23 11:13:28
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和usb2
    public 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("电灯接受能源");
    }
}

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

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

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

相关文章

【SpringBoot3】结合 gRpc 通过 proto文件生成Java代码

一、什么是protobuf Protobuf(Protocol Buffers)是由Google开发的一种灵活、高效、自动化的结构化数据序列化方法,类似于XML、JSON等,但更小、更快、更简单。它主要用于网络通信和数据存储等场景,广泛应用于各种编程语…

Android - 模拟器

Android SDK 包括一个在您的计算机上运行的虚拟移动设备模拟器。 该模拟器可让您在不使用物理设备的情况下对 Android 应用程序进行原型设计、开发和测试。 在本章中,我们将探索真实安卓设备中存在的模拟器中的不同功能。 创建 AVD 如果您想模拟真实设备&#xff0c…

vue3使用echarts和Pixi.js打造一个令人惊叹的3D图在线展示

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于 Pixi.js 的动态图形渲染技术 应用场景介绍 Pixi.js 是一款功能强大的 2D 渲染引擎,可用于创建交互式图形、游戏和动画。它因其高性能、可扩展性和跨平台兼容性而受到开发者的欢迎。本代码示例…

博奥龙/2024年部分高分文献及引用试剂展示

01IF:50.5标题7-Dehydrocholesterol dictates ferroptosis sensitivityDOI10.1038/s41586-023-06983-9期刊Nature引用试剂BF03008HRP-山羊抗兔IgG(HL)02IF:14.7标题Aggresome formation promotes ASK1/JNK signaling activation and stemness maintenanc…

海南云亿商务咨询有限公司专业电商团队值得信赖

在当今数字化浪潮下,电商行业蓬勃发展,抖音作为短视频领域的佼佼者,更是为电商行业带来了全新的机遇。海南云亿商务咨询有限公司凭借对市场的敏锐洞察和丰富的经验积累,专注于抖音电商服务,致力于为广大企业和个人提供…

【24年一博研讨会总结】BJ0705

1.工艺边据PCB边缘 >5mm. 2.IPC-A-600G Pitch < 1.25mm H<0.025mm,小于0.4mm,取消丝印框&#xff0c;防止锡膏不匀虚焊&#xff1b; 3.表面镀金与镍厚度 金厚度 um镍厚度 um0.0192.7830.0213.3610.0453.6640.0314.378 4.多层板&#xff0c;层间距>20mil 可以认…

国内外AI大模型价格一览

海外AI大模型&#xff0c;以OpenAI、Google等大厂商为主。 国内AI大模型的价格 海外较国内还是一个量级的价格差&#xff0c;相信年底还会有一波降价&#xff0c;至到达到普惠的条件。

多特征线性回归

目录 一、多特征符号意义说明&#xff1a;二、多特征模型表示&#xff1a;三、Numpy向量表示、内积计算&#xff1a;1.向量表示&#xff1a;2.内积计算&#xff1a; 四、多元线性回归梯度下降算法&#xff1a; 一、多特征符号意义说明&#xff1a; x下标j&#xff1a;表示第j个…

c++ 构造,析构,拷贝,移动构造函数

文章目录 概述1.构造函数2. 拷贝构造函数3.移动构造函数4.析构函数 例子QTUE4/5 c 小结 概述 对于c来说&#xff0c;最基础的是类。对于一个类来说&#xff0c;主要由以下函数构成。如下&#xff1a; 构造函数拷贝构造函数移动构造函数析构函数 当然&#xff0c;还有一个操作…

API字符串

API&字符串 文章目录 API&字符串API&#xff08;Application Programming Interface&#xff09;&#xff1a;简单理解&#xff1a;已经学习过的APIAPI帮助文档 字符串String&#xff0c;StringBuilder&#xff0c;StringJonierString概述注意点创建String对象的两种方…

项目一 nfs 共享服务器 Haproxy 代理 Keepalive 高可用集群

深入理解程序的数据存储 配置NFS服务器 配置ansible环境

Chatopera 聊天机器人讲师班 第一季,传授制作有趣有用的聊天机器人 | Chatopera

课程亮点 传授制作有趣有用的聊天机器人 课程直播时间 2024 年 07 月 03 日 ~ 07 月 09 日 上课形式 使用腾讯会议直播授课&#xff0c;可回放观看视频。 课程大纲 时间课程07 月 03 日 10:00 AM ~ 11:00 AM第一章 为什么要学习定制聊天机器人&#xff1f;07 月 03 日 1…

Robot Framework

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;…

微信小程序的校园点餐系统-计算机毕业设计源码56979

摘 要 近年来&#xff0c;随着移动互联网的迅猛发展&#xff0c;微信小程序作为一种轻量级应用形式逐渐受到人们的关注和喜爱。在此背景下&#xff0c;各行各业开始向微信小程序上线他们的服务&#xff0c;其中包括餐饮行业&#xff0c;在校园内&#xff0c;学生、教职工和访客…

基于docker的prometheus+grafana+altermanager+prometheus-webhook-dingtalk钉钉报警

一、各软件功能简介 prometheus&#xff1a;Prometheus(是由go语言(golang)开发)是一套开源的监控&报警&时间序列数 据库的组合。主要优点&#xff1a;外部依赖安装使用超简单、系统集成 多等 grafana&#xff1a;Grafana 是一款采用 go 语言编写的开源应用&#xff0…

redis学习(005 java客户端 RedisTemplate学习)

黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 总时长 42:48:00 共175P 此文章包含第16p-第p23的内容 文章目录 java客户端jedisSpringDataRedis项目实现hash哈希操作 java客户端 jedis 测试 ps:如果连接不上&…

PLC基础知识

1.PLC中的数据寄存器地址D表示存数据的地方。 2.PLC的物理存储器的规定&#xff1a;PLC存储器以字节为单位&#xff08;Byte&#xff09;&#xff0c;存储单元以位&#xff08;Bit&#xff09;、字节&#xff08;B&#xff0c;8Bit&#xff09;、字&#xff08;W&#xff0c;1…

jenkins搭建部署前端工程 ,从0到1

一.java环境配置 1 安装tomcatjdk17 这个也行 3 安装maven3.3.9 安装教程参考 4 安装Jenkins 下载地址 参考教程 二、相关配置 1 访问http://localhost:8080/jenkins&#xff0c;进入Jenkins初始化页面&#xff0c;第一次启动时间可能有点长&#xff0c;耐心等待。进入成功后会…

软考《信息系统运行管理员》-2.5信息系统运维管理系统与专用工具

2.5信息系统运维管理系统与专用工具 信息系统运维管理系统功能框架 信息系统运维管理系统是站在运维管理的整体视角&#xff0c;基于运维流程&#xff0c;以服务为导向的业务 服务管理和运维管理支撑平台&#xff0c;提供统一管理门户&#xff0c;最终帮助运维对象实现信息系…

(2024)KAN: Kolmogorov–Arnold Networks:评论

KAN: Kolmogorov–Arnold Networks: A review 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 1. MLP 也有可学习的激活函数 2. 标题的意义 3. KAN 是具有样条基激活函数的 M…