博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口的定义和调用
阅读量:5956 次
发布时间:2019-06-19

本文共 956 字,大约阅读时间需要 3 分钟。

接口的灵活性就在于“规定一个类必须做什么,而不管你如何做”。我们可以定义一个接口类型的引用变量来引用实现接口的类的实例,当这个引用调用方法时,它会根据实际引用的类的实例来判断具体调用哪个方法,这和上述的超类对象引用访问子类对象的机制相似。

1 //定义接口InterA 2 interface InterA 3 { 4  void fun(); 5 } 6 //实现接口InterA的类B 7 class B implements InterA 8 { 9  public void fun()10  {11   System.out.println(“This is B”);12  }13 }14 15 //实现接口InterA的类C16 class C implements InterA17 {18  public void fun()19  {20   System.out.println(“This is C”);21  }22 }23 24 class Test25 {26  public static void main(String[] args)27  {28   InterA a;29   a= new B();30   a.fun();31   a = new C();32   a.fun();33  }34 }
View Code

输出结果为:

This is B
This is C
  上例中类B和类C是实现接口InterA的两个类,分别实现了接口的方法fun(),通过将类B和类C的实例赋给接口引用a而实现了方法在运行时的动态绑定,充分利用了“一个接口,多个方法”展示了的动态多态性。
  需要注意的一点是:Java在利用接口变量调用其实现类的对象的方法时,该方法必须已经在接口中被声明,而且在接口的实现类中该实现方法的类型和参数必须与接口中所定义的精确匹配。
  结束语
  以上就是java运行时多态性的实现方法,大家在编程过程中可以灵活运用,但是在性能要求较高的代码中不提倡运用运行时多态,毕竟Java的运行时动态方法调用较之普通的方法调用的系统开销是比较大的。

 

转载于:https://www.cnblogs.com/luozihua/p/7218335.html

你可能感兴趣的文章
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>
<气场>读书笔记
查看>>
web安全问题分析与防御总结
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>