Java---接口讲解

文章目录

    • 1. 接口概述
    • 2. 接口特点
    • 3. 接口成员特点
    • 4. 小案例应用
    • 5. 类和接口的关系
    • 6. 抽象类和接口区别


1. 接口概述

 1. 接口是一种公共的规范标准,只要符合规范标准,大家都可以通用。Java中的接口更多的是体现在对行为的抽象。

 2. 参考生活中的接口可以理解,比如下图:

在这里插入图片描述

在这里插入图片描述

2. 接口特点

 1. 接口用关键字interface修饰:public interface 接口名{}

 2. 类实现接口用implements表示:public class 类名 implements 接口名{}

 3. 接口不能实例化。要参照多态的形式,通过实现类对象实例化,这叫接口多态。

 4. 接口的实现类:要么重写接口中的所有抽象方法,要么是抽象类。

public interface Inter {public abstract void jump();
}public class Cat implements Inter {@Overridepublic void jump() {System.out.println("猫可以跳高了");}
}public class Demo {public static void main(String[] args) {Inter j=new Cat();j.jump(); //输出:猫可以跳高了}
}

3. 接口成员特点

 1. 成员变量:只能是常量。默认修饰符:public final。所以可以不写。

 2. 构造方法:接口没有构造方法,因为接口主要是对行为抽象的。一个类如果没有父类,默认继承Objiect

 3. 抽象方法:只能是抽象方法。默认修饰符:public abstract。所以可以不写。

public interface Inter {public int age=10;public final int age2=20;int age3=30;
}public class InterImple implements Inter {}public class Demo {public static void main(String[] args) {Inter j = new InterImple();//j.age=30; 会报错System.out.println(j.age);  //输出:10System.out.println(j.age2); //20System.out.println(j.age3); //30//直接接口.成员,也可以System.out.println(Inter.age3);//30}
}

4. 小案例应用

public abstract class Animal {private int age;private String name;public Animal(){}public Animal(String name,int age) {this.name = name;this.age = age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public abstract void eat();
}public interface Inter {public abstract void jump();
}public class Cat extends Animal implements Inter{public Cat(){}public Cat(String name,int age){super(name,age);}@Overridepublic void eat() {System.out.println("猫吃鱼");}@Overridepublic void jump() {System.out.println("猫可以跳高");}
}public class Demo {public static void main(String[] args) {Inter i=new Cat();i.jump();  //猫可以跳高Animal a=new Cat("加菲猫",5);System.out.println(a.getName()+" "+a.getAge()+"岁"); //加菲猫 5岁a.eat(); //猫吃鱼}
}

5. 类和接口的关系

 1. 类和类的关系:继承关系,只能单继承,但是可以多层继承。

 2. 类和接口的关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。

 3. 继承关系:可以单继承,也可以多继承。

public interface Inter1 {
}public interface Inter2 {
}public interface Inter3 extends Inter1,Inter2{
}public class lei extends Object implements Inter1,Inter2,Inter3{
}

6. 抽象类和接口区别

 1. 成员区别:(1) 抽象类:变量,常量;有构造方法;有抽象方法,也有非抽象方法。 (2) 接口:常量,抽象方法。

 2. 关系区别:(1) 类与类:继承和单继承。 (2) 类与接口:实现,可以单实现也可以多实现。 (3) 接口与接口:继承,可以单继承也可以多继承。

 3. 如下面这个门的例子。再次强调:抽象类是对事物的抽象,而接口是对行为的抽象。

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩弄GPTs:人人都会的Prompt模板

角色定义 分享一个自用的Prompt模板,只要学会了这个模板,当遇到新场景时,直接套用就行。 简单总结: 角色定义(Master)背景(Background)规则(rule)技能(skill)限制(constaints)工作流(workflow) 经过实际测试发现,这…

Gti GUI添加标签

通过Git Gui打开项目,通过菜单打开分支历史,我这里是名为"develop"的分支 选中需要打标签的commit,右键-Create tag即可 但貌似无法删除标签,只能通过git bash

IOday4作业

使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一半内容&#xff0c;父进程用于回收两个子进程的资源 #include<myhead.h>int main(int argc, const char *argv[]) {int pid-1;int fd -1;int fa -1;int fb -1;//求出文…

Splashtop 荣获 SDC“年度安全供应商”奖

2023年12月5日 荷兰阿姆斯特丹 Splashtop 是随处办公环境改革的先驱&#xff0c;在伦敦举办的第14届 SDC 颁奖典礼上荣获“年度安全供应商”奖&#xff0c;我们对此感到十分自豪。荣获这一知名奖项凸显了 Splashtop 致力于通过企业级加密和基于权限的访问保护不同规模组织的决…

【精选】MyFileServer (超详细思路过程)

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

JVM 类加载机制(七)

1.加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化 ​ JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&#xff0c;下面我们就分别来看一下这五个过程。 1.1. 加载 ​ 加载是类加…

强化学习第1天:强化学习概述

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​​ 文章目录 介绍 强化学习要素 强化学习任务示例 环境搭建&#xff1a;gym 基本用法 环境信息查看 创建智能体 过程可视化 完整代码 结语…

代码随想录算法训练营第三十六天|01背包问题 二维 ,01背包问题 一维 ,416. 分割等和子集

背包理论基础 01 背包&#xff08;二维&#xff09; 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 背包最大重量为4。 物品为&#x…

Python小案例:while练习题

目录 while练习题&#xff1a;1、存款多少年能翻倍2.小球坠落长度计算3、猴子吃桃4、计算&#xff1a;1-23-4...99-100的和 while练习题&#xff1a; 1、存款多少年能翻倍 1万本金&#xff0c;年利息&#xff1a;0.0325&#xff0c;求连本带息多少年能翻倍 解析&#xff1a;…

Codeforces Round 913 (Div. 3) A~E(F,G更新中)

A.Rook&#xff08;循环&#xff09; 题意&#xff1a; 给出一个 8 8 8 \times 8 88的棋盘和一个棋子&#xff08;可以任选上下左右四方向移动任意步数&#xff09;&#xff0c;问一次移动可以到达哪些格子。 分析&#xff1a; 使用for循环对棋子所在的行列进行遍历并输出…

「智慧城市」这一概念科学吗?还是炒作?

智慧城市是一个综合性的概念&#xff0c;它利用信息技术和创新概念&#xff0c;将城市的各个系统和服务集成起来&#xff0c;以提升城市运行效率、优化城市管理和服务&#xff0c;改善市民的生活质量。 具体来说&#xff0c;智慧城市涵盖了许多领域&#xff0c;包括城市规划、建…

数据通信的基础知识

目录 一、物理层的主要功能 二、物理层的特性 三、数据通信的几个术语 四、信道的几个基本概念 1、信道 2、基带信号 &#xff08;1&#xff09;基带调制常用编码方式 1&#xff09;不归零码&#xff08;NRZ&#xff1a;Non-Return to Zero&#xff09; 2&#xff09;…

MATLAB——二维小波的多层重构

%% 学习目标&#xff1a;二维小波的多层重构 %% 案例1 clear all; close all; load woman.mat; Xind2gray(X,map); [C,S]wavedec2(X,3,db4); %二维小波的多层分解 S C(1:38*38)0; %将小波的近似系数设置为0 Ywaverec2(C,S,db4); %二维小波的多层…

MYSQL全语法速查(含示例)

文章目录 1.从简单的查询开始查找所有记录(SELECT *)查找记录中的所有登录名(SELECT)查找登录名为admin的密码(WHERE)查找电话号码非空的记录(IS NOT NULL)查找所在城市为北京或者用户名字是李四的记录(OR)查找所在城市为北京并且用户名字是张三的记录(AND)查找用户名字是李四或…

组件的生命周期

目录​ 1&#xff1a;生命周期和生命周期函数的概念 2&#xff1a;组件创建的过程 3&#xff1a;组件创建阶段beforeCreate&#xff0c;created&#xff0c;beforeMount&#xff0c;mounted生命周期函数。 3.1&#xff1a;beforeCreate方法示例&#xff1a; 3.2&#xff1…

【数据结构】动态规划(Dynamic Programming)

一.动态规划&#xff08;DP&#xff09;的定义&#xff1a; 求解决策过程&#xff08;decision process&#xff09;最优化的数学方法。 将多阶段决策过程转化为一系列单阶段问题&#xff0c;利用各阶段之间的关系&#xff0c;逐个求解。 二.动态规划的基本思想&#xff1a; …

团队git操作流程

项目的开发要求&#xff1a;&#xff08;1&#xff09;项目组厉员代码提交不少于20次 &#xff08;2&#xff09;项目组厉员每天提交不少于20次 &#xff08;3&#xff09;企业项目开发代码的每天的提交一般提交3-5次 &#xff08;4&#xff09;代码仓库的管理 git的基础操作流…

对于多台232modbus仪表低成本通讯的modbus转profinet网关

随着越来越多的仪表设备采用Modbus通信协议&#xff0c;其中又以232 Modbus仪表的应用最为广泛。而为了实现多台232 Modbus仪表低成本通信&#xff0c;Modbus转Profinet网关应运而生。Modbus转Profinet网关不仅能够实现多台仪表之间的数据传输&#xff0c;还能够保证通信的稳定…

【数据结构】——二叉树简答题模板

目录 一、树和二叉树的概念&#xff08;一&#xff09;二叉树的定义和性质&#xff08;二&#xff09;树和二叉树的区别 二、完全二叉树和满二叉树三、二叉树的遍历&#xff08;一&#xff09;由序列确定二叉树&#xff08;二&#xff09;不同遍历序列的关系 四、二叉树的性质&…

计算机操作系统3

1.虚拟机 VM 两类虚拟机的对比&#xff1a; 2.进程 进程的特征&#xff1a; 进程状态的转换&#xff08;五大状态&#xff09; 3.进程控制原语的作用 4.线程 ​​​​​线程的属性 实现方式 5.调度算法的评价指标