首页 > 编程语言 >java之接口

java之接口

时间:2024-07-25 14:28:30浏览次数:10  
标签:java void dog 接口 shout Animal01 public

在java中,接口是一种用来定义程序的一种协议,它用来描述类或结构的一组相关行为。接口是由抽象类衍生的一个概念,并由此 产生了一种编程方式。这种编程方式称为面向接口编程。

面向接口编程就是将程序的不同业务逻辑相分离,以接口的形式对接不同的业务模块。

在java中,使用接口的目的是克服一个子类只能继承一个父类的限制。因为一个类可以有多个父接口。

接口中除了抽象方法以外,还可以有默认方法,静态方法。默认方法使用default关键字修饰,静态方法由static修饰,二者都可以有方法体。

接口本身不能直接实例化,接口中抽象方法和默认方法只能通过接口实现类的实例对象调用。实现类通过implements关键字实现接口。实现类必须重写接口中所有的抽象方法。

interface Animal01{
	int ID=1;
	String NAME="牧羊犬";
	void shout();
	public void info();
	static int getID() {
		return Animal01.ID;
	}
}

interface Action{
	public void eat();
}

class Dog01 implements Animal01,Action{
	public void eat() {
		System.out.println("喜欢吃骨头");
	}
	public void shout() {
		System.out.println("汪汪·····");
	}
	public void info() {
		System.out.println("名称:"+NAME);
	}
}

public class Jiekou {

	public static void main(String[] args) {
		System.out.println("编号"+Animal01.getID());
		Dog01 dog= new Dog01();
		dog.info();
		dog.shout();
		dog.eat();

	}

}

在上面代码中

interface Animal01{
	int ID=1;
	String NAME="牧羊犬";
	void shout();
	public void info();
	static int getID() {
		return Animal01.ID;
	}

interface Animal01是定义了一个接口

在接口中定义了全局变量ID,NAME,定义了抽象方法shout()和info()两种,定义了静态方法getID



interface Action{
	public void eat();
}

这段代码中,定义了接口Action,定义了抽象方法eat



class Dog01 implements Animal01,Action{
	public void eat() {
		System.out.println("喜欢吃骨头");
	}
	public void shout() {
		System.out.println("汪汪·····");
	}
	public void info() {
		System.out.println("名称:"+NAME);
	}
}

这段代码定义了一个类Dog01,用implements实现了Animal01和Action接口,并且分别重写了接口中的抽象方法。



public class Jiekou {

	public static void main(String[] args) {
		System.out.println("编号"+Animal01.getID());
		Dog01 dog= new Dog01();
		dog.info();
		dog.shout();
		dog.eat();

	}

}

这段代码中首先实现了Animal01里面的静态方法,接着定义了一个dog的类,分别实现了info,shout,eat三个方法

输出内容是

编号1
名称:牧羊犬
汪汪·····
喜欢吃骨头
 

标签:java,void,dog,接口,shout,Animal01,public
From: https://blog.csdn.net/2301_81968528/article/details/140621243

相关文章

  • JavaWeb项目中动态拼接sql语句
    业务需求描述:图中的查询框在分条件查询用户信息列表时,前端可能会传回一个条件或多个条件,此时要对不同的条件进行sql语句的不同书写,前端传的情况有很多种,所以如果分情况写sql语句会比较死,并且不够灵活,而且书写的内容会很多,所以要想一种办法来进行不同情况的sql语句拼接。参数......
  • Java CompletableFuture 异步超时实现探索
    简介JDK8中CompletableFuture没有超时中断任务的能力。现有做法强依赖任务自身的超时实现。本文提出一种异步超时实现方案,解决上述问题。前言JDK8是一次重大的版本升级,新增了非常多的特性,其中之一便是CompletableFuture。自此从JDK层面真正意义上的支持了基于事件的......
  • Java入门:05.Java中的数组002
    通过上篇文章,相信大家对数组应该有了一个简单的了解,并对Java中的数据类型有了一个基本的认识,不仅如此我们还明白了怎样定义一个数组类型的变量,在这之后,让我们一起来更加深入的了解一下数组吧。三、如何创建一个数组(对其初始化)上篇文章我们明白了怎样定义一个数组类型的变量,但......
  • java 注解
    内置注解注解作用描述@Override用于标记方法覆盖父类的方法@Deprecated标记已过时的方法或类,建议不再使用@SafeVarargs用于抑制参数安全性警告注解只能用于静态方法或final实例方法@FunctionalInterface标记接口为函数式接口只有一个抽象方法的接口......
  • java学习4
    我感觉我这一个月学下来就是在闭门造车,网上找的学习路线,以及一些学习建议,或者说抄项目去学习就好像自己在迷雾中探索一样看不清方向这周我和上周一样,打算通过从网上抄项目进行结构化学习。但实际上不过是把代码抄过来而已如果没有人去指导,没有人告诉我,这个代码为什么要这样写,什......
  • Java毕业设计:基于Springboot+vue的电影院管理系统
    【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享......
  • Java毕业设计:基于SpringBoot+Vue的养老院系统
    一、选题背景意义......
  • JavaWeb(7) DOM编程
    目录一、什么是DOM编程二、获取页面元素的API1.在整个文档范围内查找元素结点2.在具体元素节点范围内查找子节点3.查找指定子元素节点的父节点4.查找指定元素节点的兄弟节点5.整体代码演示三、操作元素属性值API1.属性操作2.内部文本操作3.整体代码演示 四、增......
  • Java编程指南:高级技巧解析 - Excel单元格样式的编程设置
    最新技术资源(建议收藏)https://www.grapecity.com.cn/resources/前言在Java开发中,处理Excel文件是一项常见的任务。在处理Excel文件时,经常需要对单元格进行样式设置,以满足特定的需求和美化要求,通过使用Java中的相关库和API,我们可以轻松地操作Excel文件并设置单元格的样式。在......
  • JAVA集合 day7.24
    一.Collections类1.1Collections常用功能常用方法:publicstaticvoidshuffle(List<?>list):打乱集合顺序。publicstaticvoidsort(Listlist):将集合中元素按照默认规则排序。publicstaticvoidsort(Listlist,Comparator<?superT>com):将集合中元素......