java接口思想

SecureCRT 9.0最新版安装与激活全攻略(附驱动识别技巧) 本文提供SecureCRT 9.0最新版的详细安装与激活指南,并重点解析了嵌入式开发中串口连接的硬件驱动识别技巧。内容涵盖从安全获取软件、解决USB转串口驱动兼容性问题,到配置SSH与串口会话的完整流程,旨在帮助开发者和工程师高效部署并精通使用这款终端仿真利器。 阅读详情

这是一篇对java接口思想的总结,原文链接java的接口及实例

一、定义

Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

接口定义的一般形式为:

[访问控制符]interface <接口名> {

类型标识符final 符号常量名n = 常数;

返回值类型 方法名([参数列表]);

…

}

二、接口的特点

1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用”_”分隔)

2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化

3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法

4、接口中没有构造方法,不能被实例化

5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口

6、Java接口必须通过类来实现它的抽象方法

7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类

8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例

9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.

三、接口的用法

1、精简程序结构,免除重复定义

比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。

举例:鸟类和昆虫类都具有飞行的功能,这个功能是相同的,但是其它功能是不同的,在程序实现的过程中,就可以定义一个接口,专门描述飞行。

下图是分别定义鸟类和昆虫类,其都有飞行的方法。
这里写图片描述
下图定义了接口,其类图如下:
这里写图片描述

实现代码如下:

interface   Flyanimal{   
   void fly();
}
class   Insect {   
   int  legnum=6;
}
class  Bird {   
  int  legnum=2;
  void egg(){};
}
class Ant extendsInsect implements  Flyanimal {
   public void fly(){
       System.out.println("Ant can  fly");
   }
}
classPigeon  extends Bird implements  Flyanimal {
   public void fly(){
       System.out.println("pigeon  can fly");
   }
   public void egg(){
       System.out.println("pigeon  can lay  eggs ");
   }
}
public classInterfaceDemo{
   public static void main(String args[]){
     Ant a=new Ant();
     a.fly();
     System.out.println("Ant's legs are"+ a.legnum);
     Pigeon p= new Pigeon();
    p.fly();
     p.egg();
  }
}

程序运行结果:

Ant can fly

Ant’slegs are 6

pigeon can fly

pigeon can lay eggs

二、拓展程序功能,应对需求变化。

假设一个学校接待方面的程序,招待不同身份的人的食宿问题,其对应规则如下:

身份食宿
学生食堂宿舍
教师教室食堂学生公寓
学生家长招待所招待所

理论上,当然可以对每个不同身份的人各定义一个对应的类,并实现各自的方法,但是观察这写类,可以归纳出其有一个共同的模板,即“人”的“食、宿”问题。这时候,就可以发挥接口的功能了。实现代码如下:

interfacePerson{
    void eat();
    void sleep();
}

class Studentimplements Person{
    public void eat(){
       System.out.println("学生去食堂吃饭!");
    }
    public void sleep(){
       System.out.println("学生回寝室睡觉!");
    }
}

class Teacherimplements Person{
    public void eat(){
       System.out.println("教师去教工餐厅吃饭!");
    }
    public void sleep(){
       System.out.println("教师回学校公寓睡觉!");
    }
}
 class Parents implements Person{
    publicvoid eat(){
       System.out.println("家长去招待所饭馆吃饭!");
    }
    public void sleep(){
       System.out.println("家长回招待所睡觉!");
    }
}

public class PersonInterface{
         public static void main(String[] args)
         {
                   Person p=new Student();
                   p.eat();
                   p.sleep();
                   p=new Teacher();
                   p.eat();
                   p.sleep();
                   p=new Parents();
                   p.eat();
                   p.sleep();
         }
}

程序执行结果:

学生去食堂吃饭!

学生回寝室睡觉!

教师去教工餐厅吃饭!

教师回学校公寓睡觉!

家长去招待所饭馆吃饭!

家长回招待所睡觉!

现在需要添加一些功能,即现在需要添加“外宾、上级领导”两类角色,并且以后工具需要还要添加相应的身份角色的人进来,此时,只需要根据需要添加“外宾”类、“领导”类,而主类仍然可以拿来就用,无需进行更多的修改。此时就可以显示出接口的作用了。

在上面的程序中添加如下两个类即可。

class Foreign implements Person{
    publicvoid eat(){
       System.out.println("外宾去酒店吃饭!");
    }
    public void sleep(){
       System.out.println("外宾回酒店睡觉!");
    }
}

class Leader implements Person{
    publicvoid eat(){
       System.out.println("领导去宾馆吃饭!");
    }
    public void sleep(){
       System.out.println("外宾回宾馆睡觉!");
    }
}

而主函数中用法仍然一样。

下面给出完整的代码:

interfacePerson{
    void eat();
    void sleep();
}

class Studentimplements Person{
    public void eat(){
       System.out.println("学生去食堂吃饭!");
    }
    public void sleep(){
       System.out.println("学生回寝室睡觉!");
    }
}

class Teacherimplements Person{
    public void eat(){
       System.out.println("教师去教工餐厅吃饭!");
    }
    public void sleep(){
       System.out.println("教师回学校公寓睡觉!");
    }
}
 class Parents implements Person{
    publicvoid eat(){
       System.out.println("家长去招待所饭馆吃饭!");
    }
    public void sleep(){
       System.out.println("家长回招待所睡觉!");
    }
}
class Foreign implements Person{
    publicvoid eat(){
       System.out.println("外宾去酒店吃饭!");
    }
    public void sleep(){
       System.out.println("外宾回酒店睡觉!");
    }
}

class Leader implements Person{
    publicvoid eat(){
       System.out.println("领导去宾馆吃饭!");
    }
    public void sleep(){
       System.out.println("领导回宾馆睡觉!");
    }
}

public class PersonInterface{
         public static void main(String[] args)
         {
                   Person p=new Student();
                   p.eat();
                   p.sleep();
                   p=new Teacher();
                   p.eat();
                   p.sleep();
                   p=new Parents();
                   p.eat();
                   p.sleep();
                   p=new Foreign();
                   p.eat();
                   p.sleep();
                   p=new Leader();
                   p.eat();
                   p.sleep();
         }
}

程序执行结果:

学生去食堂吃饭!

学生回寝室睡觉!

教师去教工餐厅吃饭!

教师回学校公寓睡觉!

家长去招待所饭馆吃饭!

家长回招待所睡觉!

外宾去酒店吃饭!

外宾回酒店睡觉!

领导去宾馆吃饭!

领导回宾馆睡觉!

Rancher入门到精通 - Nginx Ingress 配置指南 Rancher 是一个开源的容器管理平台,它提供了一套完整且易于使用的工具来部署、管理和扩展容器化应用。而 Nginx Ingress 则是一个常用的开源 Ingress 控制器,用于将外部请求流量导入到 Kubernetes 集群中的服务。在开始之前,请确保您已经正确安装了 Rancher 平台和 Nginx Ingress 控制器。 阅读详情

相关推荐

手把手教你用Python分析OpenFAST仿真结果:pyDatView处理.out文件与数据可视化技巧

本文详细介绍了如何使用Python中的pyDatView工具分析OpenFAST仿真结果,包括数据加载、质量检查、时域与频域分析、多工况对比及自动化报告生成。通过优化技巧和可视化方法,帮助工程师高效处理.out文件,提升风机性能分析的准确性和效率。

weixin_29311017的博客 183

java接口(实例运用)

数组我们有一个现成的 sort 方法就是可以拿来对数组进行排序操作的,但是能不能对一个对象数组进行排序呢?答案是不可以的!对象数组中的每个元素都是一个实例化的对象,对象中的成员属性复杂,你直接调用sort对数组进行排序是不行的。此时就需要实现Comparable接口,并且重写compareTo方法。compareTo方法定义了对象之间的比较规则,sort会根据compareTo方法的返回值来进行排序。然后就可以使用Arrays类的sort方法对对象数组进行排序了。

2201_75367406的博客 2026

手把手教你用STM32F103的普通IO口读取SSI编码器(附完整代码与示波器调试心得)

本文详细介绍了如何利用STM32F103的普通IO口读取SSI绝对式编码器数据,提供完整的硬件连接方案、精确时序控制的软件实现及示波器调试技巧。通过低成本方案实现高精度位置反馈,适用于工业自动化和机器人控制领域。

weixin_29172963的博客 452

Java的接口及实例

一、定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口定义的一般形式为: [访问控制符]interface <接口名> { 类型标识符final 符号常量名n = 常数; 返回值类型 方法名([参数列表]); … } 二、接口的特点 1、Java接口中的成员变量默认都是public,static,fin...

顺其自然~专栏 9231

大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!)

智慧物流大数据平台 文章目录智慧物流大数据平台一、项目背景二、逻辑架构三、解决方案技术亮点:数据流转四、项目的技术选型4.1流式处理平台4.2 分布式计算平台4.3 海量数据存储框架软件版本总结 一、项目背景 本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖

weixin_48143996的博客 6431

从3D相机数据到三维模型:Halcon实战深度图、亮度图与点云转换全流程

本文详细解析了如何利用Halcon将3D相机采集的深度图、亮度图转换为三维点云模型的完整流程。通过实战案例分享,涵盖数据格式处理、点云生成方法(SDK接口与纯Halcon实现)、三维模型可视化优化等关键技术,帮助工程师解决工业检测中的实际难题,提升三维重建精度与效率。

weixin_42525005的博客 397

Java接口案例

weixin_46441425的博客 3820

DeepL Pro免费使用技巧与API调用优化方案

机器翻译技术通过神经网络模型实现跨语言语义转换,其核心价值在于保持专业术语准确性的同时实现自然语言流畅度。现代翻译工具如DeepL采用注意力机制等深度学习技术,在医疗、法律等专业领域展现出接近人工翻译的质量。针对API调用场景,开发者可通过请求模拟实现小批量自动化处理,而文档预处理和术语库优化则能显著提升免费额度使用效率。本文重点解析如何通过字符计算优化、临时接口调用等工程实践方法,在合规前提下最大化利用免费翻译资源。

weixin_29038303的博客 266

java 接口使用实例

java 接口使用实例 题目: 老师有基础班的,也有就业班的。 共性: 属性:姓名,年龄 功能:讲课。 现在又要针对日语这种小语种单独开班, 需要部分基础班老师和部分就业班老师会说日语。 分析: 题目说到基础班和就业班中的老师部分会日语,那么本次编程将要定义三层类,分别代表老师、所教班类型、是否会讲日语,其中讲日语可以作为接口中的抽象方法,在调用时再定义“会讲日语”。 接口:Interface 抽象方法:say(); 父类:Teacher() 属性:String name;int age; 方法:metho

weixin_42914989的博客 3384

海康威视VS互联网大厂:薪资、福利、工作强度全方位对比

本文全面对比了海康威视与互联网大厂在薪资、福利和工作强度等方面的差异。海康威视提供稳定的薪资结构和较低的工作强度,适合追求专业深度的职场人;而互联网大厂则以高薪和快速成长吸引人才,但工作压力较大。文章还分析了职业发展路径和长期价值,帮助求职者做出明智选择。

weixin_29171129的博客 390

基于FPGA的工业相机项目大赏1——cmos线阵相机

●CMOS CL0402 作为图像传感芯片,曝光后产生一定格式的图像数据;●FPGA ZYNQ7020 作为主控芯片负责cmos驱动控制、图像像素的采集、cmos寄存器的配置、cameralink协议的实现、上位机串口通信的实现;●Cameralink端子实现图像数据的高速串行发送,将数据传送至采集卡PC端。系统工作流程如下: FPGA 上电加载配置程序,计算机通过异步串口向 FPGA 发送控制信息,FPGA对接收的控制信息进行分析判断。

weixin_41895751的博客 6400

【Java】生动例子详解接口

文章目录一、接口是什么二、初识接口三、接口使用实例3.1 Comparable 和 Comparator 接口3.2 Cloneable 接口 一、接口是什么 我的电脑上有 USB 接口。当我想要使用无线鼠标的时候,只需要将无线鼠标的 USB 连接头插入其中,无线鼠标就能使用了;当我想要给我的手机充电时,只需要将充电线的 USB 头插入其中,手机就开始充电了;当我想要获取 U 盘中的资料信息时,将其插入 USB 接口中,U 盘就连接上我的电脑了。 这就是我们生活中的接口,试想如果电脑上没有这样的一个 US

weixin_46103589的博客 2411

【实战】Python 携程酒店价格实时抓取爬虫项目全解析

摘要:本文介绍了一个基于Python的携程酒店价格实时抓取系统开发方案。系统采用Requests、BeautifulSoup和Selenium等技术栈,实现了多城市、多日期的酒店数据采集,包括价格、评分、位置等关键信息。通过请求头伪装、IP代理、随机等待等反爬策略,有效应对携程的反爬机制。系统支持数据清洗、去重和CSV/Excel导出,并提供了多线程优化、代理池集成等进阶方案。本文详细阐述了技术原理、代码实现和优化策略,同时强调了数据采集的合法合规性,为旅游行业数据分析提供了可靠的数据获取方案。

2503_91057718的博客 2606

Java——面向接口编程思想

用接口声明变量,是为了 解耦、扩展、拥抱变化;用实现类实例化,是因为接口无法直接创建对象。这是面向对象设计中非常核心的技巧。

weixin_44762713的博客 457

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java 接口思想、多态、内部类

Java 接口思想接口的使用思想多态概念多态的使用细节内部类 接口的使用思想 狭义思想:接口是对功能的扩展; 广义思想:接口是对外暴露的规则; 多态 概念 概念:多态是指事物的多种形态。 在java中最常见的两种多态形式:   1)方法的重载:方法的多态,一个方法的多种形态;   2)对象的多态:父类或接口的引用指向子类或实现类的对象; 一般说的多态是指对象的多态; 多态的前提是必须有继承或实现的关系; 在编程中遇到方法参数列表中有接口类型,但是可以传递实现类对象的原

EIUC_Thread的博客 364

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JAVA————面向接口编程的思想

面向接口编程(Interface Oriented Programming,IOP)是一种编程思想,它强调的是在设计软件应用时,应该先定义接口,然后再实现接口12。无论你的鼠标是有线的还是无线的,只要它们都符合这个USB接口的标准,就可以通过这个插口连接到电脑上。这样,无论myPet是Dog还是Cat,我们都可以通过相同的方式来调用eat和sleep方法,因为这两个方法都是在Animal接口中定义的4。这样,当我们在编程时,就可以针对接口编程,而不是针对具体的类。

灿嘿嘿的博客分享 1310

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java面向接口编程思想

java面向对象编程概述。

linkunpeng_的博客 2864

JAVA的接口思想

感觉接口的思想挺重要的。 以电脑的USB接口为例1.接口的出现对功能实现了扩展。 插上摄像头能视频了,插上键盘能输入了 2.接口定义了规则 不是usb口你插不进去 3.降低耦合性(解耦) 黑人问号,还不明白。(挖个坑以后来填)接口和抽象类的区别 描述事物:鸟// 抽象类:动物 abstract class Animal { public abstract void breath

yusenDong的博客 393

Java核心设计思想:对内隐藏细节,对外暴露接口

摘要:本文阐述了Java开发中"对内隐藏细节,对外暴露接口"的封装原则。通过访问控制修饰符(private/public)、getter/setter方法和接口(interface)等技术手段,实现降低耦合度、保证数据安全和简化使用的目标。文章分析了常见误区如过度暴露setter方法、公开实现类等问题,强调接口应只定义核心功能而非内部细节。最后指出,遵循这一原则能提升代码的可维护性和易用性,使Java程序如同设计精良的工具,使用者只需关注接口而无需了解内部实现。

2503_93893479的博客 944

java的面向接口编程思想_java java面向对象-面向接口编程思想

20180407 java java面向对象-面向接口编程思想面向接口编程好处:充分体现了多态性,把实现类对象赋给接口类型变量,屏蔽了不同实现类之间的实现差异,从而可以做到通用编程。案例:使用USB设备来工作。不用接口的情况://鼠标class Mouse{public void swapData(){System.out.println("鼠标在移动...");}}//打印机class Prin...

weixin_42591908的博客 285

Java中的抽象类与接口类:自上而下的设计思想

在抽象类中,一些方法可能已经有了默认的实现,而其他方法可能需要子类提供具体的实现。抽象类的设计思想是自下而上的,即从具体的实现逐步向上抽象出通用的行为。接口类的设计思想是自上而下的,即从更抽象的层次定义了一组方法,然后由具体的类去实现这些方法。抽象类更关注于从具体的实现向上抽象出通用的行为,而接口类更关注于从更抽象的层次定义一组行为。综上所述,抽象类和接口类是Java面向对象编程中的重要概念,深入理解它们的特点和区别,并根据设计需求灵活运用,能够更好地设计出灵活、可扩展的软件系统。是一个接口类,它定义了。

五更钟动的博客 974

java接口的思想_Java-接口的使用思想和定义你还不懂?

15:183、接口的使用思想1.1.1. 接口的作用总结1、接口用来描述不属于一个继承体系的额外的公共的功能;2、通过多态使用接口,可以提高程序的扩展性;3、接口实现的java的多继承;4、接口用来定义规范;1.1.2. 使用接口定义规则规则:交通规则;校规、班规等等,是必须要被遵守的东西;接口中可以书写的成员:抽象函数和成员变量(被final关键字修饰,也就是常量);Java中实现接口的类,都必...

weixin_39638929的博客 148

Java编程思想第四版读书笔记——第九章 接口

这章介绍了适配器设计模式和策略设计模式。 第九章  接口 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 1、抽象类和抽象方法 public abstract void f(); 创建抽象类是希望通过这个通用接口操纵一系列类。如果一个类包含大于等于一个抽象方法,那么这个类就是抽象类,必须用abstract关键字来限定这个抽象类。 如果试图直接创

severusyue的博客 1739

Java对象包装与接口分层设计思想详解

知其然:Freemarker之类的模板引擎通过接口分层和适配器模式,实现了不同Java对象的统一访问与处理。知其所以然:这种设计极大地增强了系统的扩展性、兼容性和安全性,降低了用户的使用门槛和维护成本。对象包装与接口分层是Java模板引擎等系统的核心设计思想之一。理解其原理和实现,有助于我们开发高扩展性、高兼容性的应用系统。如果你掌握了上述内容及图表表达方式,就能轻松应对各种复杂数据结构的统一处理需求。Freemarker TemplateModel详解设计模式解析——适配器模式。

IT技术学习与工作笔记分享 1762

java 接口的思想

接口的思想: 举例:笔记本电脑,USB接口的故事。 1,接口的出现对功能是实现了扩展。 2,接口的出现定义了规则。 3,接口的出现降低了耦合性(解耦)。 接口的出现,完成了解耦,说明有两方,一方在使用这个规则,另一方在实现这个规则。比如笔记本电脑使用这个规则,而外围设备在实现这个规则。 接口和抽象类的区别 描述事物。 犬。按照功能分类。导

高岩 is me 941

【Java学习笔记】Java思维---接口思想(Interface)

一、概念定义: Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 二、硬件接口思想: public interface Pci{ public void start(); public void stop(); } public class Netcard implements Pci{ public void start()

小释嚼奶糖 334
上一篇: Java泛型思想
下一篇: java中的堆,栈,静态域,常量池
the__apollo
博客等级 码龄10年 90粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值