接口(忽略的知识点)

简介: 接口属性只能是final的,而且是public static final修饰符比如int a=10; 其实上是public static final int a=10;

接口格式


interface 接口名{


       //属性;


       //方法;(1.抽象方法 2.默认实现方法 3.静态方法


}


接口的修饰符


只能是default和public,和类一样


接口属性


只能是final的,而且是public static final修饰符


比如int a=10; 其实上是public static final int a=10;


属性的访问


接口名.属性名


接口方法


在JDK7中,接口中的方法都是没有方法体的


JDK8中,接口可以有默认的实现方法,需要default关键词修饰


               ,接口也可以有静态的实现方法,需要static关键词修饰


定义接口:

public interface DBcon{
    public void con();
    public void close();
}


定义两个使用接口的类

public class SQL implements DBcon{
    @Override
    public void con(){
        System.out.println("连接SQL");
    }
    @Override
    public void close(){
        System.out.println("断开SQL");
    }
    //特有方法
    public void open(){
        System.out.println("打开SQL");
    }
}


public class Oracle implements DBcon{
    @Override
    public void con(){
        System.out.println("连接Oracle");
    }
    @Override
    public void close(){
        System.out.println("断开Oracle");
    }
}


在主程序中定义一个有接口参数的方法,只要是实现了接口类的类的对象,都是可以传递进去的,并且会执行实现了此接口的类的对象中的con()方法和close()方法。(不需要向上转型为接口对象传入参数)(体现多态,接口引用可以指向实现了接口的类的对象)

public void t(DBcon db){
    db.con();
    db.close();
}


然后用两个类的对象分别调用

SQL sql=new SQL();
t(sql);//输出连接SQL和断开SQL
Oracle o=new Oracle();
t(o);//输出连接Oracle 和断开Oracle 


多态接口数组

//定义一个接口数组
DBcon[] cons=new DBcon[2];
//为什么能放进去这个对象,因为这个类实现了此接口
cons[0]=new SQL();
//所以可以放进去所有实现了此接口的类的对象
cons[1]=new Oracle();


打印不同对象的close方法


再调用某个对象的特有方法

for(int i=0;i<cons.Length;i++){
    cons[i].close();//动态绑定机制
    //如果想要调用数组中某个对象的特有方法
    //判断某个对象是否是相应的类对象(判断运行类型)
    if(cons[i] instanceof SQL){
        //如果是,则强制向下转型并调用方法
        ((SQL)cons[i]).open();
    }
}


多态传递


B接口继承A接口


类实现B接口,相当于也实现了A接口


super.xxx 访问父类属性....等


接口名.xxx 访问接口属性...等

目录
相关文章
|
机器学习/深度学习 并行计算 Linux
PyCharm+Docker:打造最舒适的深度学习炼丹炉
PyCharm+Docker:打造最舒适的深度学习炼丹炉
534 0
|
NoSQL Java 关系型数据库
蚂蚁金服+拼多多+抖音+天猫(技术三面)面经合集助你拿大厂offer
很多Java开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。针对这些的读者朋友,小编整理了一些知名大厂的面经,在这分享给读者朋友们参考,让即将面试或是有想法跳槽的读者朋友们了解一下一线大厂面试时都喜欢问那些问题。
|
前端开发 JavaScript 数据库
从前端到后端:构建高效数据驱动应用的全栈策略
在构建现代应用程序时,前端与后端的高效协作至关重要。本篇文章深入探讨了如何将前端技术与后端架构相结合,以构建强大的数据驱动应用。我们将分析常见技术栈,包括React与Node.js的集成、Python与Django的应用,以及如何利用数据库优化数据处理。通过具体的示例和最佳实践,读者将能掌握如何在全栈开发中实现高效的数据交互与应用性能优化。
|
安全 数据库 数据安全/隐私保护
什么是特权账号,如何定义
对特权账号进行简单定义,区别普通账号
327 0
什么是特权账号,如何定义
|
监控 安全 API
什么是 API?
API 即应用程序编程接口(Application Programming Interface),它是一组定义了软件组件之间如何交互的规则和协议。可以将 API 想象成一个服务的 “窗口”,通过这个窗口,不同的软件程序可以相互通信、共享数据和功能。 例如,当你使用手机上的天气应用时,这个应用可能会通过调用气象部门提供的 API 来获取实时的天气数据。
10090 12
|
JavaScript 前端开发 数据可视化
6 个用于 3D 网页图形渲染的最佳 WebGL 库
现代前端、游戏和Web开发正是WebGL可以转化为数字杰作的东西。使用GPU绘制在浏览器屏幕上生成的矢量元素,WebGL创建交互式Web图形,从而获得用户体验。视觉元素的质量和复杂性使该工具在HTML或CSS等其他方法中脱颖而出。
886 0
|
SQL 缓存 Java
JPA - 一级和二级缓存使用详解
JPA - 一级和二级缓存使用详解
463 0
10分钟6元,没有结果的DSW
DSW计费说明 更新时间:2023年12月19日 18:08:00 DSW包括个人版和探索者版本,本文介绍DSW的计费规则。 计费项 DSW的计费项组成如下图:计费项 计费方式 不同版本的计费方式如下。
291 1
|
监控 前端开发 Serverless
微前端解决方案
微前端解决方案
312 1
|
算法
[Halcon&定位] 形状匹配和灰度匹配对比
[Halcon&定位] 形状匹配和灰度匹配对比
457 0