一、接口的概念

在之前学习了抽象类,其中抽象类的抽象方法定义了标准,具体的方法实现交给子类完成,之后再结合多态的特征在一定程度上解决代码的耦合(上节课的参数统一),这需要在继承关系中实现,但是继承存在单继承的局限。

今天的接口出现就解决单继承的局限,接口是也是一个特殊的类,没有自己的构造方法,在接口中只能定义全局常量、抽象方法、静态方法(虽然语法.上可以,但是一般不会在接口中去定义静态方法),要定义一个接口需要使用到一个新的关键字就是interface。

DEMO:定义接口

以上定义了接口,接口没有自己的构造方法,但是发现了一个很奇怪的问题:所有的方法都没有方法体,但是却没用abstrat修饰,所以在接口中抽象方法默认是可以省略abstract 的,因为默认就是抽象方法。可以省略public吗?可以省略,但是为了防止不熟悉语法的程序员出错,强烈要求不省略(规范的写上)。

DEMO: public 修饰符可以换成private吗?

不能使用private修饰,只能使用public 或者不写( 默认就是public)

二:接口的使用

在接口中定义了抽象方法,而且接口没有自己的构造方法,那么就意味着不能使用接口直接实例化对象,所以接口要有意义则应该有自己的实现类(就是子类),这里的接口与实现类的关系和抽象与自己的子类的关系是一样的。使用抽象类和自己的子类可以实现向.上转型从而使用多态的特征,接口也一样可以实现向上转型从而实现多态的特征。

之前抽象类的子类要继承抽象类使用的关键字是“extends",实现类要实现接口使用的关键字是“implements”。

DEMO:定义接口的实现类.

以上的EmpDAOImpl是IEmpDAO的实现子类,我们之前说了可以向上转型。

DEMO:向. 上转型实例化子类对象

有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

欢迎关注微信公众号:码邦主

Java 接口语法_JAVA接口的基本语法相关推荐

  1. java wifi类_Java 接口——面向对象的精髓

    原标题:Java 接口--面向对象的精髓 接口有何用?面试宝典上背下来的总结,你真的明白吗?接口&工厂方法其实很简单,什么是接口先看看生活中的接口,比如USB接口. USB接口的设计者在最初就 ...

  2. 回调java 简书_Java接口回调机制详解【转】

    一.回调的含义和用途 1. 什么是回调? 一般来说,模块之间都存在一定的调用关系,从调用方式上看,可以分为三类:同步调用.异步调用和回调.同步调用是一种阻塞式调用,即在函数A的函数体里通过书写函数B的 ...

  3. java api练习_Java接口练习

    package 接口interface; /* 用接口实现关灯开灯 */ public class Test { public static void main(String[] args) { Pe ...

  4. java接口调用_java 接口怎么调用

    一个类实现了某一个接口就可以调用接口中的方法.接口可以理解为一种能力,例如:每种动物都有叫的能力,但是每种动物的叫声都不一样,叫的能力就可以定义为一个接口. 一.创建项目和包 打开Eclipse,依次 ...

  5. java的接口语法_JAVA接口的基本语法

    一.接口的概念 在之前学习了抽象类,其中抽象类的抽象方法定义了标准,具体的方法实现交给子类完成,之后再结合多态的特征在一定程度上解决代码的耦合(上节课的参数统一),这需要在继承关系中实现,但是继承存在 ...

  6. c# java 语法_Java与C#的语法区别

    1.作用域 在java中 { { int a=1; } int a=2;//以上a作用域外的以下,再声明同名的变量,是允许的: } 在C#中,以上是不允许的[只要在同一个作用域内,以上或以下的代码中 ...

  7. java修饰方法_java接口中方法、属性修饰符详解

    java接口的修饰符:abstract(inteeface本身就是抽象的,加不加abstract都一样). 接口中字段的修饰符:public static final(默认不写) 如下解释: publ ...

  8. java里SQL insert操作的语法_Java含个人总结语法:JDBC,学生表,实体类,集合,增删改查,注入,预处理【诗书画唱】...

    create table denglu( uname varchar(30), upwd varchar(30) ) insert into denglu values('诗书','123') ins ...

  9. java 接口 抛出异常_Java接口抛出异常,但接口实现不抛出异常?

    我读到这段代码的接口抛出一个异常,但实现它不抛出一个或赶上一个类,这是为什么?在java中合法还是安全?Java接口抛出异常,但接口实现不抛出异常? import java.rmi.*; public ...

最新文章

  1. angular5 httpclient的示例实战
  2. weka分类器怎么设置样本类别_自步对比学习: 充分挖掘无监督学习样本
  3. CYQ.Data 轻量数据访问层(八) 自定义数据表实现绑定常用的数据控件(中)
  4. 关于C# Span的一些实践
  5. apache mediawiki 安装_如何在CentOS 7上安装MediaWiki
  6. PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用
  7. 敏捷开发绩效管理之七:敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化)...
  8. c语言上机题库大一,C语言上机题库(一).doc
  9. 传奇登陆游戏黑屏错位以及登陆器配置和常见问题
  10. Maven打包失败:程序包XXX不存在
  11. 网友自制的谷歌输入法皮肤及制作方法
  12. Tallest buildings/skyscrapers in the world
  13. 三层交换机与路由器的区别
  14. Activity流程引擎表结构
  15. 探探提醒对方账号异常_我告诉你探探中对方账号异常怎么回事
  16. 拆长虹iho3000_(CA版)四川长虹iho-3000t晶晨s905l-b刷全网通系统教程可救砖头
  17. c语言中1 lt lt 10什么意思,卡西欧lt1和lt3是什么意思
  18. css:单行超出显示三点省略号,总是忘,写个博客吧
  19. java编写宠物喂养_多态实现主人喂养宠物
  20. 规范化理论:如何求属性集X关于F的闭包?

热门文章

  1. 线程同步工具(七)在并发任务间交换数据
  2. xxx while the managed IDbConnection interface was being used: Login failed for user xxx
  3. 安装nexus时遇到的一个问题
  4. BroadcastReceiver的思考(3)
  5. 电脑仙人掌机器人作文_神奇的仙人掌作文400字
  6. .jsp与servlet之间页面跳转及参数传递实例
  7. 动态规划的用法——01背包问题
  8. SDN你必须知道的十大问题——SDN有哪些开源项目
  9. 用二叉树来理解树状数组
  10. golang中的bufio