第九章 接口

概要

在很多人眼里,接口无非就是implements interfceA。事实上,仔细探寻接口,他有很多我们不经常用到的东西。接口在设计模式中,通过继承多个接口,能够实现多重继承的效果。除了在接口中申明方法,我们也可以在接口中定义变量,甚至是一个类。下面是这章的重点内容:
1.一个接口中的方法,只能是public的,不能用private和protected修饰,否则编译器会报错。如果我们不做任何修饰,它默认是public访问权限。
2.在接口中,我们可以申明一个变量,但是这个变量隐含public static final修饰。
3.如果一个类继承了一个类和一个接口,他们有同样的方法,那么我们不需要实现接口中的这个方法,可以直接使用这个方法。
4.接口中可以定义新的接口。如果我们继承外围接口,是不需要实现内围接口的方法的。例如:

interface A{//外围接口A
void display();
interface InnerInterface{//内围接口,他必须是public的,不修饰默认是public
void show();
}
}
class Test implements A{
void display(){}//我们只需要实现A申明的方法就可以了
}

5.我们可以在一个类中定义一个接口,他可以是private的,但在类外,我们不能创建这个接口,也不能获取这个接口的任何引用,他只能作为参数传递。这样做的理由是保证这个接口的隐藏性。例如:

class A{
private interface IA{//一个私有的接口
}
class UserIA implement IA{//我们继承这个接口
}
IA makeInterface(){
return new UserIA();//我们通过makeInterface获取这个接口
}
void useInterface(IA i){//在这个类的内部,我们有个方法使用这个接口
}
}
class B{
A a = new A();//初始化A
//a.makeInterface();//这行我们是不能写的。
//IA ia = a.makeInterface()这样写更加错误,因为不能获得这个接口的访问权限
a.userInterfae(a.makeInterface());//我们只能作为参数传递。
}
6.如何选择应该使用接口还是使用抽象类?我们只需要看,我们是否需要看是否需要带任何方法定义和成员变量,如果要带,就是抽象类,否则是接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值