java之八篇:如何看待java中的接口


的确java中关于接口讨论文章太多,再者加之网上文章参差不齐,不少误导大家,让人费解难解;要的就是个透彻,需站到更高的高度来理解分析,别被规范性的东东绊住不前;ok,我们继续下文说开来
1)java中同类class平级的就是接口interface,不同之点就是接口不能实例化,如感兴趣可反汇编看看
2)java中接口的定义,只能定义方法且不能包含方法体,其次可包含静态常量,不能包含成员变量,大家都知道对象的成员变量实例后是放到堆上的,
或者说对象实例化一定在堆上放有成员东东、堆上占有空间,这不佐证规范中"接口不能实例化"
3)java中接口的实现,实质就是接口方法的覆盖;规范中提到该类要实例化必须实现所有的方法、否则类就是抽象类;ok,关于这一理解,覆盖本来就是继承父子类间才有的关系,当然接口、类间的继承关系属于java编译期就规划好了的,继承方法且必须覆盖,否则就是抽象类;就那样编译期不过则报相关提示;编译出来的类有啥呢,其方法体那部分同其它通常的类一样,没啥特殊标记,这样的类就当普通类用, 你可试下接口A有a1方法,接口B有b1方法,类C实现接口A、B,编译出的类C方法a1、方法b1它不会标记到底来自哪个接口;
4)java中实现接口的类被编译后会标记出实现的全局接口名,这个标记很有用,类加载时会注册本类已实现的接口,ok,也即对于运行期动态绑定的XXX部分的标明;
5)或许时常你会见到接口运行期动态绑定的提法,那到底咋绑定呢,接口即实例的方法,运行期调用方法会传入对象的指针哈,反汇编可见到;常见到的表象类赋值或强转到接口;
6)接口 - 类的方法映射解析形成的运行期动态,即运行期接口方法地址解析(依据运行期调用的接口方法名 + 测试对象类型 + 注册的类接口对应关系) 找方法 ;
7)运行期动态,是的或许你会见到接口间可相互强转赋值的代码;当然这需要你进一步理解哈
8)面向接口的...到此为止。
9)或许以上的说法还是未使你明白接口,需要融汇

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值