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接口类怎么用的主要内容,如果未能解决你的问题,请参考以下文章