参考摘自:http://www.runoob.com/java/java-interfaces.html

接口(interface)在Java中是一个抽象类型,是抽象方法的集合。

一个类通过implements继承接口,来实现接口中所有抽象方法。(抽象类除外)

声明接口:

interface Animal{
public void eat();
public void travel();
}

 接口有以下特性:

1.接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字

2.接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字

3.接口中的方法都是公有的

接口的实现:

类使用implements关键字实现接口。

当类实现接口时,需要实现接口中所有的方法,否则,类必须声明为抽象类

实例:

public class Dog implements Animal{
public void eat(){
System.out.println("Dog eat");
}
public void travel(){
System.out.println("Dog Travel");
}
public void otherMethod(){
System.out.println("This class method");
}
public static void main(String[] args){
Dog d = new Dog();
d.eat();
d.travel();
}
}
运行结果:
Dog eat
Dog Travel

接口的继承:

使用extends关键字,与类之间的继承相似

//文件名:Sports.java
public interface Sports{
public void setHomeTeam(String name);
public void setVisitingTeam(String name);
}
//文件名:Football.java
public interface Football extends Sports{
public void homeTeamScored(int points);
}
//文件名:Hockey.java
public interface Hockey extends Sports{
public void homeGoalScored();
}

Football接口自己声明了一个方法,从Sports继承了两个方法,这样实现Football接口的类需要实现3个方法

接口的多继承:

类不能多继承,但接口可以

public interface Hockey extends Sports,Football

标记接口:

没有任何方法的接口称为标记接口。

package java.util;
public interface EventListener{}

Java之旅_面向对象_接口的更多相关文章

  1. Java之旅_面向对象_封装

    参考并摘自:http://www.runoob.com/java/java-encapsulation.html 在面向对象的程序设计方法中,封装(英语 :Encapsulation)是指一种将函数接 ...

  2. Java之旅_面向对象_抽象类

    参考并摘自:http://www.runoob.com/java/java-abstraction.html Java抽象类: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有 ...

  3. Java之旅_面向对象_包(Package)

    http://www.runoob.com/java/java-package.html 包的作用: 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹一样,包也采用 ...

  4. Java之旅_面向对象_多态

    参考并摘自:http://www.runoob.com/java/java-polymorphism.html 多态 多态是一个行为具有多个不同表现形式的能力. 多态就是同一个接口,使用不同的实例而执 ...

  5. Java之旅_面向对象_重写和重载

    参考并摘自:http://www.runoob.com/java/java-override-overload.html 重写(Override) 子类对父类(允许访问的)方法的实现过程进行重新编写, ...

  6. java语言基础(四)_面向对象_类_对象_封装_构造

    面向对象 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计.开发计算机程序. 这里的对象泛指现实中一切事物,每种事物都具备 ...

  7. Python-老男孩-02_装饰器_面向对象_封装_继承_异常_接口_数据库

    装饰器其实也是一个函数,它的参数是一个函数 ; 其它函数与装饰器之间建立联系是通过 @装饰器函数名, 感觉有点像Spring的面向切面编程 装饰器函数,如何处理原函数的参数.?  装饰器 原函数返回值 ...

  8. Java入门姿势【面向对象3】构造方法及其重载_方法的调用

    上次我为大家写出啦"定义类与创建对象_了解局部变量",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象2]定义类与创建对象_ ...

  9. Java oop第05章_多态、接口

    一. 为什么需要接口? Java中当一个类继承父类时,最多也只能继承一个父类,扩展性会受到一定的限制,为了弥补这一缺陷,Java又提供了一种新的引用数据类型分类,叫接口. 一个类只能继承一个父类,但可 ...

随机推荐

  1. 解决Redis之MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist o...

    解决Redis之MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist o... ...

  2. [转]理解下DMA/NorFlash/DDR下的Burst是个什么概念

    DMA传送不经过CPU的控制,假如硬盘的数据不能经过DMA控制器读到内存,那么每完成一次将硬盘的数据读出来,再存放到内存的操作,都要通过CPU运行几条读写指令来完成,这时CPU就做不了别的事了,如果有 ...

  3. Java编程的逻辑 (86) - 动态代理

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  4. irc

    https://www.irccloud.com/ webchat.freenode.net http://blog.csdn.net/wcc526/article/details/16993069 ...

  5. [Hinton] Neural Networks for Machine Learning - Hopfield Nets and Boltzmann Machine

    Lecture 11 — Hopfield Nets Lecture 12 — Boltzmann machine learning Ref: 能量模型(EBM).限制波尔兹曼机(RBM) 高大上的模 ...

  6. [Artoolkit] Can I Use LGPL code for commercial application

    这是一个比较普遍但又容易被忽略的问题. From: http://answers.google.com/answers/threadview/id/439136.html 假设背景: - want t ...

  7. python 截取 取出一部分的字符串

    下面是split截取获得 >>> str = 'http://manualfile.s3.amazonaws.com/pdf/gti-chis-1-user-9fb-0-7a05a5 ...

  8. webpack 运行提示“The ‘mode‘ option has not been set”的原因和解决方法

    最近在研究webpack,当我执行npm run build / npm start / npm run server等命令时,都是提示下面的警告信息 WARNING in configuration ...

  9. apache 二级域名设置完整步骤

    步骤如下: 1. 你要拥有一个有泛域名解析的顶级域名,例如:abc.com 在dns服务上设置,域名服务商都提供此服务 www.abc.com      指向服务器IPabc.com          ...

  10. AWS EC2 使用root账户密码登陆

    创建亚马逊的云主机EC2会提示下载一个pem的文件,需要使用puttygen转换成ppk私钥,转换过程如下图: 然后在使用putty登录,用户名是ec2-user.下面将修改使用root账户登录: 1 ...