【JavaSE】抽象类与接口(下篇)

简介: 【JavaSE】抽象类与接口(下篇)

✨hello,进来的小伙伴们,你们好呐!✨

🍱🍱系列专栏:【JavaSE】🍵

🥞🥞本篇内容:JavaSE部分接口知识从0到1的分享(对准知识点阅读喔!)

🍊🍊作者简介:一名大二即将升大三的科班编程小白,我很平凡,学会努力!

🍼🍼码云存放仓库gitee:https://gitee.com/king-zhou-of-java/java-se.git

接口:

✈️✈️一、接口的概念

接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。

在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。

🍊举例说明:比如电脑的USB接口。

54309dea318a4802bcae84f65a6f586d.jpeg

插座的接口。

676ed3820e4b492380a170e9fdb9792a.jpeg

⛵⛵二、语法规则

接口定义方式:

🌯🌯1:首先在我们的idea里我们鼠标左键选中src,然后右键新建一个java Class。

f1799cf78caa49e3ae707fd509d71d27.png

🍖🍖2.在弹出来的图框中我们选择第二个interface。


de80995d1cf6400e92588233f8a6b27c.png

🥐🥐 3.这样我们就新建好了一个接口。

   public interface Idemo1 {

       // 在接口中上述写法都是抽象方法,推荐方式2,代码更简洁

       public abstract void way1();

       void way2();

       abstract void way3();

   }

🥮🥮4.我们一般创建接口时, 接口的命名一般以大写字母 I 开头,例如我举的例子接口名就是Idemo1。

⛴️⛴️三、接口使用

注意:接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法。

比如我们在接口中实现way1();我们会发现,编译器就自动报错了。

63f21142441a46869c37e24a733e64d7.png

解决方法:定义一个类实现该接口:

🥞🥞1.当我们定义了一个类之后,我们没有实现该接口中的抽象方法,我们发现编译器会报错:

267851543b294c75abe834046d2440e0.png


解决方案:实现该接口中的方法:

🥔1.首先我们在这个类中鼠标右键找到generate

a5b9c1d072384f3fbd09124fcd7cae15.png

🍏3.进去之后我们可以看到有我们要实现的方法,如果有多个方法的话,我们按住键盘上的Ctrl+鼠标左键选中所有的抽象方法,然后点击OK即可。

e75f5e5bca7d44ed843d97e374fb7c21.png

🍐4.成品(这个@Override起标识作用,系统会自动添加,不用深究)

0196188e690d4397a06b5938449a88e5.png

5.测试使用,我们定义一个主类TestDemo1,然后实例化一个对象t1,调用我们的way1()函数。

   public class Testdemo1 {

       public static void main(String[] args) {

           test1 t = new test1();

           t.way1();

       }

   }

运行结果:

1610f6e8dbb344d59782b9ddc76ce5eb.png

🚟🚟四、接口特性

🍤1. 接口类型是一种引用类型,但是不能直接new接口的对象。

4799bca1d770441cbb2327fb28ece733.png 

🌯2. 接口中每一个方法都是public的抽象方法, 即接口中的方法会被隐式的指定为 public abstract。

比如我们写一个protected方法,编译器就会报错。

2e3c990a859c4459ab80de8d6eb1b4f1.png

🚰3. 重写接口中方法时,不能使用default访问权限修饰。

277204f67de64673b582695cd7320974.png

💊4. 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量。

585530ad9ed246edb8efb7cd6b56739e.png

🍗5. 接口中不能有静态代码块和构造方法。

72aedf40dc86457b8b817dcb8d3d5841.png

相关文章
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin协程的优势与实践
【4月更文挑战第22天】 在移动开发领域,性能优化和响应性是衡量应用程序质量的关键指标。近年来,Kotlin语言因其简洁性和功能性在Android社区中获得了广泛认可。特别是Kotlin协程,作为一种新的并发处理机制,正在改变开发者编写异步和后台任务的方式。本文将探讨Kotlin协程的核心优势,并通过实例展示如何在Android应用中实现它们以提高性能和用户体验。
|
NoSQL MongoDB 数据库
在Flink的BEGIN STATEMENT SET;END;语句
在Flink的BEGIN STATEMENT SET;END;语句【1月更文挑战第19天】【1月更文挑战第93篇】
302 7
|
Java API Apache
阿里巴巴开源框架JarsLink
JarsLink是一个基于JAVA的模块化开发框架,它提供在运行时动态加载模块(JAR包)、卸载模块和模块间调用的API,它能够帮助你进行模块化开发,也能帮助你的系统在运行时动态添加新功能,减少编译、打包和部署带来的发布耗时,同时它也是阿里巴巴的开源项目之一 https://github.com/alibaba/jarslink,目前在微贷事业群各团队广泛使用。
14704 0
|
Dubbo Java 应用服务中间件
SpringCloud Netflix-springcloudnetflix(一)
SpringCloud Netflix-springcloudnetflix
186 1
|
Linux 网络安全 开发工具
2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
2022-渗透测试-口令破解-几款暴力破解和字典生成的工具
|
JSON 安全 算法
OAuth2 和 JWT - 如何设计安全的 API?
要比较JWT和OAuth2?首先要明白一点就是,这两个根本没有可比性,是两个完全不同的东西。
NV21转YUV420SP的代码
NV21转YUV420SP的代码
161 0
|
机器人 iOS开发
我的失败与伟大 —— 创业必备的素质
创业伊始,我对自己的定位是:创业创业,既然要开创事业,前期肯定是要尽可能贡献,而不是索取。初次创业,没有经验,所以也要持续学习,提高自己,跟上创业的步伐。 在创业的前6个月,我认为自己要学习的东西,主要是找出创业成功案例的一些共同点,作为参考标准。这期间我的业余时间主要花在了阅览创业相关的信息上:
2945 0