关于java中接口概念的一些阐释
2016-05-29 14:04
417 查看
接口可以看成是特殊的抽象类。即只包含抽象方法和常量的抽象类。可以通过interface关键字来定义接口。看如下代码:
注意:run()方法,此处可以省略public abstract,因其默认就是public abstract的。
实现接口
与继承不同,一个类可以实现多个接口,实现的接口直接用逗号分隔。当然,该类需要实现这些接口中定义的所有方法;
一个类可以通过implements关键字“实现”接口。一个类实现了某个接口后必须实现该接口中定义的所有方法。看下面的代码,类实现了接口并实现了方法:
另外需要说明的一点,接口可以作为一种类型声明变量,一个接口类型的变量可以引用实现了该接口的类的对象;通过该变量可以调用该接口中定义的方法(具体的实现类提供了方法的实现)。代码如下所示:
此句代码为,一个接口类型变量,引用了子类的对象。调用时,调用的是子类对象的具体的实现。
接口的继承
接口间可以存在继承关系,一个接口可以通过extends关键字继承另外一个接口。子接口继承了父接口中定义的所有方法。代码如下所示:
说明:AmericanCurl实现了Hunter,必须实现Hunter接口中的hunt方法以及其父接口Runner中的run方法。
接口和抽象类的区别
一个类只能继承一个抽象类,但可以实现多个接口。
抽象类中可以包含抽象方法和非抽象方法,而接口中的所有方法均为抽象的。
子类继承抽象类必须实现抽象类中所有抽象方法,否则子类也必须是抽象类。而子类实现接口则必须实现接口中的所有抽象方法。
interface Runner { public static int DEFAULT_SPEED = 100; public void run(); }
注意:run()方法,此处可以省略public abstract,因其默认就是public abstract的。
实现接口
与继承不同,一个类可以实现多个接口,实现的接口直接用逗号分隔。当然,该类需要实现这些接口中定义的所有方法;
一个类可以通过implements关键字“实现”接口。一个类实现了某个接口后必须实现该接口中定义的所有方法。看下面的代码,类实现了接口并实现了方法:
class AmericanCurl implements Runner , … { public void run() { System.out.println("run..."); } }
另外需要说明的一点,接口可以作为一种类型声明变量,一个接口类型的变量可以引用实现了该接口的类的对象;通过该变量可以调用该接口中定义的方法(具体的实现类提供了方法的实现)。代码如下所示:
Runner runner = new AmericanCurl();
此句代码为,一个接口类型变量,引用了子类的对象。调用时,调用的是子类对象的具体的实现。
接口的继承
接口间可以存在继承关系,一个接口可以通过extends关键字继承另外一个接口。子接口继承了父接口中定义的所有方法。代码如下所示:
interface Runner { public void run(); } interface Hunter extends Runner { public void hunt(); } class AmericanCurl implements Hunter { public void run() {… … …} public void hunt() {… … …} }
说明:AmericanCurl实现了Hunter,必须实现Hunter接口中的hunt方法以及其父接口Runner中的run方法。
接口和抽象类的区别
一个类只能继承一个抽象类,但可以实现多个接口。
抽象类中可以包含抽象方法和非抽象方法,而接口中的所有方法均为抽象的。
子类继承抽象类必须实现抽象类中所有抽象方法,否则子类也必须是抽象类。而子类实现接口则必须实现接口中的所有抽象方法。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树