java里的interface接口类怎么用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里的interface接口类怎么用相关的知识,希望对你有一定的参考价值。

  Java不支持多重继承,即一个类只能有一个父类
  为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口
  接口是抽象方法和常量值定义的集合,是一种特殊的抽象类
接口中只包含常量和方法的定义,没有变量和方法的实现
接口中的所有方法都是抽象的
接口中成员的访问类型都是public
接口中的变量默认使用public static final标识(可以在定义的时候不加此修饰,系统默认)
  接口通过使用关键字interface来声明
格式:interface 接口的名字
  接口体:
接口体中包含常量定义和方法定义两部分
接口体中只进行方法的声明,不允许提供方法的实现
方法的定义没有方法体,且用分号结尾
public interface Runner

int ID=1;
void run();

  接口允许被继承,可以用extends继承一个已有的接口
public interface Runner

int ID=1;
void run();

interface Animal extends Runner

void breathe();

  通过使用implements实现接口中的所有方法
class Fish implements Animal

public void run()

System.out.println("Fish is swiming");

public void breathe()

System.out.println("Fish is bubbling");



如果只需要实现某接口中定义的部分方法,可以通过定义一个抽象类来实现
abstract class LandAnimal implements Animal

public void breathe()

System.out.println("LandAnimal is breathing");

  一个类可以继承一个父类的同时,实现一个或多个接口,extends关键字必须位于implements关键字之前
class Student extends Person implements Runner

……
public void run()

System.out.println("The student is Running");

……


在类中实现接口的方法时,方法的名字、返回类型、参数个数及类型必须与接口中的完全一致
  接口中的方法默认是public 的,所有类在实现接口方法时,一定要用public来修饰
  如果接口的方法的返回类型不是void,则在类中实现该接口方法时,方法体至少要有一个return语句
  如果是void类型,类体除了两个大括号以外,可以没有任何语句
  Java中提供的接口都在相应的包中,通过引入包可以使用Java提供的接口,也可以自己定义接口
一个Java源文件就是由类和接口组成的
  接口可以增加很多类都需要实现的功能,不同的类可使用相同的接口,同一个类也可实现多个接口
  接口只关心功能,并不关心功能的具体实现,使用相同接口的类不一定有继承关系
  public接口:接口声明时,关键字interface前面加上public关键字,可以被任何一个类使用
友好接口类:一个接口不加修饰,友好接口可以被同同一包中的类使用,转载,仅供参考。
参考技术A

Java不支持多重继承,即一个类只能有一个父类
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口
接口是抽象方法和常量值定义的集合,是一种特殊的抽象类
接口中只包含常量和方法的定义,没有变量和方法的实现
接口中的所有方法都是抽象的
接口中成员的访问类型都是public
接口中的变量默认使用public static final标识(可以在定义的时候不加此修饰,系统默认)
接口通过使用关键字interface来声明
格式:interface 接口的名字

1, 实例方法与引用变量实际引用的对象的方法绑定,这种绑定属于动态绑定,因为是在运行时由Java虚拟机
动态决定的
2, 静态方法与引用变量所声明的类型的方法绑定,这种绑定属于静态绑定,因为实际上是在编译阶段就已经
绑定
3, 成员变量(静态变量,实例变量)与引用变量所声明的类型的成员变量绑定,这种绑定属于静态绑定,因为
实际上是在编译阶段就已经绑定

参考技术B 接口的使用与类的使用有些不同。在需要使用类的地方,会直接使用new关键字来构建一个类的实例,但接口不可以这样使用,因为接口不能直接使用 new 关键字来构建实例。

接口必须通过类来实现(implements)它的抽象方法,然后再实例化类。类实现接口的关键字为implements。

如果一个类不能实现该接口的所有抽象方法,那么这个类必须被定义为抽象方法。

不允许创建接口的实例,但允许定义接口类型的引用变量,该变量指向了实现接口的类的实例。

一个类只能继承一个父类,但却可以实现多个接口。

实现接口的格式如下:
修饰符 class 类名 extends 父类 implements 多个接口
实现方法


请看下面的例子:
import static java.lang.System.*;

public class Demo
public static void main(String[] args)
SataHdd sh1=new SeagateHdd(); //初始化希捷硬盘
SataHdd sh2=new SamsungHdd(); //初始化三星硬盘



//串行硬盘接口
interface SataHdd
//连接线的数量
public static final int CONNECT_LINE=4;
//写数据
public void writeData(String data);
//读数据
public String readData();


// 维修硬盘接口
interface fixHdd
// 维修地址
String address = "北京市海淀区";
// 开始维修
boolean doFix();


//希捷硬盘
class SeagateHdd implements SataHdd, fixHdd
//希捷硬盘读取数据
public String readData()
return "数据";

//希捷硬盘写入数据
public void writeData(String data)
out.println("写入成功");

// 维修希捷硬盘
public boolean doFix()
return true;


//三星硬盘
class SamsungHdd implements SataHdd
//三星硬盘读取数据
public String readData()
return "数据";

//三星硬盘写入数据
public void writeData(String data)
out.println("写入成功");


//某劣质硬盘,不能写数据
abstract class XXHdd implements SataHdd
//硬盘读取数据
public String readData()
return "数据";

参考技术C 在类的名字后面接 implements +你的接口类名字 实现就行了 参考技术D 新建一个类 implements 接口 实现它

Java_interface(接口)

 

A:接口的概述

  从狭义角度讲就是Java中的interface

  从广义角度讲就是对外提供规则的就是接口

B:接口的特点

  a:接口用关键字interface表示(接口中的方法都是抽象的)

    interface 接口名{}

  b:类实现接口用implements表示(接口是实现,不是继承)

    class 类名 implements 接口名{}

  c:接口不能实例化

    接口实现方式是按照多态的方式实例化(父类引用指向子类对象)

  d:接口的子类

    可以是抽象类,但意义不打

    可以是具体类,要重写接口中所有的抽象方法

C:接口的成员变量

  成员变量只能是常量,并且是静态的公共的

  默认修饰符:public static final(建议自己手动给出)

  接口没有构造方法,子类的super();默认访问的是Object的构造方法

  成员方法只能是抽象方法:默认修饰符:public abstract(建议自己手动给出)不能定义非抽象类

D:接口是一个暴露在外的,所以全部都是public

技术分享图片

 

 

技术分享图片

 

以上是关于java里的interface接口类怎么用的主要内容,如果未能解决你的问题,请参考以下文章

C++里的接口(Interface)

Java中接口(interface)和抽象类(abstract)的区别

java interface是啥意思?怎么用?

Java接口隔离原则:接口里的方法,你都用得到吗?

java中的接口interface

TS里interface和type