首页 > 编程语言 >工作学习笔记(七)Java的接口

工作学习笔记(七)Java的接口

时间:2024-11-12 23:30:16浏览次数:1  
标签:Java 定义 实现 笔记 接口 方法 public

今天复习一下Java的基础知识,之前对于接口只有一个比较笼统的概念,经过一晚上的梳理,整理如下:它一种抽象类型,用于定义一组方法和常量。是Java多态性的重要体现。

  • 定义接口
  • 使用 interface 关键字来定义,例如 public interface MyInterface{} 。接口中的成员变量默认是 public static final 的,所以一般都是大写字母命名,定义时就必须赋值,比如 int MAX_VALUE = 100; 。
  • 方法默认是 public abstract ,在接口里只写方法签名,如 void methodName(); 。
  • 接口的实现
  • 一个类通过 implements 关键字实现接口,如 class MyClass implements MyInterface 。如果这个类没有实现接口中的所有方法,那么这个类必须被定义为抽象类。
  • 实现接口的类要实现接口中定义的所有方法,而且方法的可见性必须是 public (因为接口中的方法默认是 public )。
  • 接口的作用
  • 实现多态:可以有多个类实现同一个接口,这些类的对象都可以被当作接口类型来使用。例如有一个 Drawable 接口, Circle 类和 Rectangle 类都实现了它,当有一个方法参数是 Drawable 类型时,就可以传入 Circle 或者 Rectangle 的对象,实现不同的绘制行为。
  • 定义规范:接口就像是一个契约,规定了实现它的类必须要做什么。比如 java.util.List 接口定义了列表操作的规范, ArrayList 和 LinkedList 都实现这个接口,保证了它们都能进行诸如添加、删除元素等操作。
  • 解耦代码:在大型项目中,接口可以降低类与类之间的耦合度。比如一个程序的模块A通过接口调用模块B的功能,只要模块B实现接口的功能不变,具体实现细节可以随意修改,而不会影响模块A的调用。

标签:Java,定义,实现,笔记,接口,方法,public
From: https://www.cnblogs.com/zjw111/p/18542870

相关文章

  • 【java编程】深入揭秘 Java 中 Person person = new Person(); 背后的奥秘
    当你在Java中写下Personperson=newPerson();时,这行代码看似简单,却蕴藏着深奥的计算机科学原理,甚至能揭示Java内存管理的神秘面纱。每当你创建一个对象,你实际上是在与Java的内核进行一场交互。今天,我们就来一起揭开这行代码的面纱,探索Java的对象创建机制,理解它是如何......
  • 关于Java API的正则表达和try-catch的使用方法
    文章目录Java包装类的概述对应包装类包装类的转换方法(parse)Integer.parseInt(Strings)Long.parseLong(Strings)Byte.parseByte(Strings)Short.parseShort(Strings)Float.parseFloat(Strings)Double.parseDouble(Strings)正则表达式常用方法字符规则`.`匹配除换......
  • leetcode 59. 螺旋矩阵 II java解法
    以123456789为例n=奇数结果1                2                3      i8                9                47                6             ......
  • Java异常处理
    在Java中,异常是指在程序运行过程中出现的错误条件。当发生异常时,程序会终止执行并抛出一个异常对象。为了有效地处理异常,Java提供了异常处理机制。Java的异常处理机制主要涉及以下几个关键字和语句:try-catch:使用try块来包裹可能抛出异常的代码,然后使用catch块来捕获并处理异......
  • 每日OJ题_牛客_kotori和迷宫_BFS_C++_Java
    目录牛客_kotori和迷宫_BFS题目解析C++代码Java代码牛客_kotori和迷宫_BFSkotori和迷宫描述:        kotori在一个n*m迷宫里,迷宫的最外层被岩浆淹没,无法涉足,迷宫内有k个出口。kotori只能上下左右四个方向移动。她想知道有多少出口是她能到达的,最近的出口离她......
  • C++黑马程序员网课:我的学习心得与笔记(更新中)
    前言:笔记来源于C++黑马程序员网课视频:https://www.bilibili.com/video/BV1et411b73Z在此发布笔记,只是为方便学习,不做其他用途,原作者为黑马程序员。1.C++基础1.1用VisualStudio写C++程序输出HelloWorld1.1.1下载并配置VisualStudio环境1.1.2用VisualStudio写C......
  • 基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现五
    一、前言介绍:免费获取:猿来入此1.1项目摘要随着信息技术的飞速发展和互联网的普及,教育领域正经历着深刻的变革。传统的面对面教学模式逐渐受到挑战,而在线课程学习教育系统作为一种新兴的教育形式,正逐渐受到广泛关注和应用。在线课程学习教育系统的出现,不仅为学生提供了更加灵......
  • 基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现六
    一、前言介绍:免费获取:猿来入此1.1项目摘要随着信息技术的飞速发展和互联网的普及,教育领域正经历着深刻的变革。传统的面对面教学模式逐渐受到挑战,而在线课程学习教育系统作为一种新兴的教育形式,正逐渐受到广泛关注和应用。在线课程学习教育系统的出现,不仅为学生提供了更加灵......
  • javascript 流程控制,数组【知识点整理】
    javascriptJS流程控制条件控制语句循环语句跳转语句:异常处理:JS数组数组的方法JS流程控制条件控制语句if语句:用于在满足特定条件时执行代码块。if(condition){//如果条件为真,则执行代码块}if…else语句:在条件为真时执行一段代码,条件为假时执......
  • Java面试之多线程&并发篇(2)
    前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!Thread类中的start()和run()方法有什么区别?为什么wait,notify和notifyAll这些方法不在thread类里面?为什么wait和notify方法要在同步块中调用?Java中interrupted和isInterruptedd方法的区别?ava中synchronized和R......