生活中接口Java_Java接口实现
实现接口
接口指定对象必须提供的协议。类可以提供接口的抽象方法的部分实现,并且在这种情况下,类必须将自身声明为抽象。
实现接口的类使用“implements”子句来指定接口的名称。“implements”子句由关键字implements,后跟逗号分隔的接口类型列表组成。
一个类可以实现多个接口。实现接口的类声明的一般语法如下:
class implements { // Class body goes here }
假设有一个Circle类。
public class Circle implements Shape { void draw(){ System.out.println("draw circle"); } }
实现接口的类必须重写以实现接口中声明的所有抽象方法。 否则,类必须声明为abstract。接口的默认方法也由实现类继承。植入类可以选择不需要重写默认方法。接口中的静态方法不会被实现类继承。
下面的代码定义了两种引用类型,一种来自Circle类,另一种来自接口类型。
Circle c = new Circle(); Shape shape = new Circle();
变量c是Circle类型。它指的是Circle对象。第二个赋值也是有效的,因为Circle类实现了Shape接口,而Circle类的每个对象也都是Shape类型。
实现接口方法
当一个类完全实现了一个接口时,它为所实现的接口的所有抽象方法提供一个实现。接口中的方法声明包括方法的约束。例如,方法声明中的throws子句是方法的约束。
import java.io.IOException; interface Shape { void draw(double amount) throws IOException; } class Main implements Shape{ @Override public void draw(double amount) { // TODO Auto-generated method stub } }
Main的代码是有效的,即使它丢弃了throws子句。当类覆盖接口方法时,允许删除约束异常。如果使用Shape类型,必须处理IOException。
import java.io.IOException; interface Shape { void draw(double amount) throws IOException; } class Main implements Shape{ @Override public void draw(double amount) { // TODO Auto-generated method stub } public void anotherMethod(){ Shape s = new Main(); try { s.draw(0); } catch (IOException e) { e.printStackTrace(); } draw(0); } }
实现多个接口
一个类可以实现多个接口。类实现的所有接口都在类声明中的关键字implements之后列出。
通过实现多个接口,类为所有接口中的所有抽象方法提供实现。
interface Adder { int add(int n1, int n2); } interface Subtractor { int subtract(int n1, int n2); } class Main implements Adder, Subtractor { public int add(int n1, int n2) { return n1 + n2; } public int subtract(int n1, int n2) { return n1 - n2; } }
部分实现接口
类不必为所有方法提供实现。如果一个类不提供接口的完全实现,它必须声明为abstract。
interface Calculator { int add(int n1, int n2); int subtract(int n1, int n2); } abstract class Main implements Calculator{ public int add(int n1, int n2) { return n1 + n2; } }
¥ 我要打赏 纠错/补充 收藏
生活中接口Java_Java接口实现相关推荐
- java中抽象接口_一篇文章让你彻底理解java中抽象类和接口
相信大家都有这种感觉:抽象类与接口这两者有太多相似的地方,又有太多不同的地方.往往这二者可以让初学者摸不着头脑,无论是在实际编程的时候,还是在面试的时候,抽象类与接口都显得格外重要!希望看完这篇博客文 ...
- 一篇文章让你彻底理解java中抽象类和接口
相信大家都有这种感觉:抽象类与接口这两者有太多相似的地方,又有太多不同的地方.往往这二者可以让初学者摸不着头脑,无论是在实际编程的时候,还是在面试的时候,抽象类与接口都显得格外重要!希望看完这篇博客文 ...
- java为什么项目中需要使用接口
一.为什么项目中需要使用接口? 在项目中,有一些功能,不仅仅是一个类去实现,即有很多地方有用到,大家需要统一标准.所以需要用接口,这样大家同时实现一个接口,就能够统一规范.在接口中只是定义了基本的方法 ...
- dvi显卡连接html显示器,显示器中的DVI接口显卡怎么切换成VGA接口?
现在生活中,每个家庭里都至少有个台式电脑.那以往台式电脑大部分的显示器都是用VGA接口的.电脑配置更新换代很快,有的在换电脑时只换了主机,而显示器还继续用着.那现在新换的主机显卡大部分都是带DVI接口 ...
- java的标记接口_Java中的标记接口?
我被教授,Java中的Marker接口是一个空接口,用于向编译器或JVM发送信号,实现此接口的类的对象必须以特殊方式处理,如序列化,克隆等. 但最近我了解到,它实际上与编译器或JVM无关.例如,在Se ...
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...
- C#中抽象类和接口的区别
一.抽象类: 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆 ...
- Java 8 中的这个接口真好用!
在开发过程中经常会使用if...else...进行判断抛出异常.分支处理等操作.这些if...else...充斥在代码中严重影响了代码代码的美观,这时我们可以利用Java 8的Function接口来消 ...
- 妙用Java 8中的 Function接口 消灭if...else(非常新颖的写法)
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:juejin.cn/post/7011435192803917831 在开发过程中经常会使用if...else...进行判断抛 ...
最新文章
- mongodb的安装及主从复制
- CV 方向,长期看好,短期谨慎?
- pyqt5讲解1:窗口,QLabel,QLineEdit,QTextEdit
- java中的动态绑定与静态绑定
- python多线程爬取多个网页_python多线程爬取网页
- 2018-2019-1 20189218《Linux内核原理与分析》第二周作业
- 网站转换APP源代码 WebAPP源代码 网站生成APP源代码 Flutter项目 带控制端
- 如何使用南方CASS绘制地形图
- 从网络启动恢复RG750Gr3
- 金融壹账通拟7月4日香港上市:2年亏近30亿 市值蒸发超90%
- 联想thinkpad e430 设置u盘启动
- 软件架构模式 mark Richards - 读后总结 3 - 微内核架构
- 3种将等高线转DEM的方法
- html中JSON格式化输出
- php点击切换图片的底部导航,如何优雅地使用BottomNavigationView实现底部导航栏+fragment切换效果...
- 文明重启战局服务器维护中是什么意思,文明重启为什么改了密码别人还能登?...
- python实现爬取东方财富网
- mysql 重复率高字段 索引,为什么重复值高的字段不能建索引(+聚集索引和非聚集索引)...
- 东邪西毒经典对白,程序员版
- LU分解法(又名Doolittle分解法,直接三角分解法)C++实现