当前位置: 首页 > 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("电灯接受能源");}
}

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

http://www.lryc.cn/news/392637.html

相关文章:

  • 前端文件预览汇总
  • 银河麒麟V10 安装tigervncserver
  • SKM Power*Tools 10.0
  • 查看视频时间基 time_base
  • 数据结构 —— 最小生成树
  • 初学Spring之 JavaConfig 实现配置
  • 在Java项目中实现实时日志分析
  • Git基础知识与常用命令指南
  • 第8章:Electron 剪贴版和消息通知
  • Android zygote访谈录
  • nuxt、vue树形图d3.js
  • 香橙派AIpro测评:yolo8+usb鱼眼摄像头的Camera图像获取及识别
  • 大华设备接入GB28181视频汇聚管理平台EasyCVR安防监控系统的具体操作步骤
  • Laravel包开发指南:构建可重用组件的艺术
  • JavaDS预备知识
  • 日常学习--20240705
  • Java中初始化一个List的多种方式
  • BeikeShop多国语言多货币商城系统源码基于Laravel框架
  • gradle构建工具
  • Java需要英语基础吗?
  • 14-36 剑和诗人10 - 用LLM构建 AI 代理平台
  • 如何在Java中实现批量数据处理
  • 项目部署_持续集成_Jenkins
  • 如何选择TikTok菲律宾直播网络?
  • Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method--论文笔记
  • 信息收集-arping
  • 一文了解常见DNS问题
  • TCP/IP 网络协议族分层
  • Qt:5.QWidget属性介绍(Enabled属性-控件可用性设置、geometry属性-控件位置/大小设置)
  • NoSQL 非关系型数据库 Redis 的使用: