疯狂java笔记——接口interface

[修饰符] interface 接口名 extends 父接口1,父接口2

{

定义常量

抽象方法

内部类,接口,枚举定义

方法定义

}

 

修饰符可以是public或者省略,当省略的情况下,默认采用包权限访问控制符,只有在相同包结构下才可以那个该接口。

 

接口名应该与类相同的,一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。

 

接口定义的内部类,内部接口,内部枚举默认采用public static,不管你指定了什么,系统都会自动使用public static

 

public interface Output

{

// 接口里定义的成员变量只能是常量

int MAX_CACHE_LINE = 50;

// 接口里定义的普通方法只能是public的抽象方法

void out();

void getData(String msg);

// 在接口中定义默认方法,需要使用default修饰

default void print(String... msgs)

{

for (String msg : msgs)

{

System.out.println(msg);

}

}

// 在接口中定义默认方法,需要使用default修饰

default void test()

{

System.out.println("默认的test()方法");

}

// 在接口中定义类方法,需要使用static修饰

static String staticTest()

{

return "接口里的类方法";

}

}

 

 

接口的成员变量默认是public static final修饰的因此,在不同包下,也可以通过接口访问接口里的成员变量。

public class OutputFieldTest

{

public static void main(String[] args)

{

// 访问另一个包中的Output接口的MAX_CACHE_LINE

System.out.println(lee.Output.MAX_CACHE_LINE);

// 下面语句将引起"为final变量赋值"的编译异常

// lee.Output.MAX_CACHE_LINE = 20;

// 使用接口来调用类方法

System.out.println(lee.Output.staticTest());

}

}

 

 

接口的继承,和类继承有点不一样,接口继承完全支持多继承,一个接口有多个直接父类,

 

一个接口继承多个父接口时,多个接口排在extends之后,多个负借口之间以英文(,)隔开。

interface interfaceA

{

int PROP_A = 5;

void testA();

}

interface interfaceB

{

int PROP_B = 6;

void testB();

}

interface interfaceC extends interfaceA, interfaceB

{

int PROP_C = 7;

void testC();

}

public class InterfaceExtendsTest

{

public static void main(String[] args)

{

System.out.println(interfaceC.PROP_A);

System.out.println(interfaceC.PROP_B);

System.out.println(interfaceC.PROP_C);

}

}

 

 

接口主要用途:

-定义变量,也可哟越南语进行强制类型转换

-调用接口中定义的变量

-被其他类实现

【修饰符】 class 类名 extends 父类 implements 接口1,接口2....

{

类体部分

}

 

实现接口方法时,必须使用public,因为接口里的方法都是public修饰,而子类重写父类方法时权限访问只能更大或者相等,所以实现类实现接口里的方法时只能用public修饰。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值