接口实现多态
来源:互联网 发布:q宠大乐斗代玩软件 编辑:程序博客网 时间:2024/05/17 04:39
接口的灵活性就在于“规定一个类必须做什么,而不管你如何做”。我们可以定义一个接口类型的引用变量来引用实现接口的类的实例,当这个引用调用方法时,它会根据实际引用的类的实例来判断具体调用哪个方法,这和上述的超类对象引用访问子类对象的机制相似。
举例说明:
//定义接口InterA
interface InterA
{
void fun();
}
//实现接口InterA的类B
class B implements InterA
{
public void fun()
{
System.out.println(“This is B”);
}
}
//实现接口InterA的类C
class C implements InterA
{
public void fun()
{
System.out.println(“This is C”);
}
}
class Test
{
public static void main(String[] args)
{
InterA a;
a= new B();
a.fun();
a = new C();
a.fun();
}
}
输出结果为:
This is B
This is C
上例中类B和类C是实现接口InterA的两个类,分别实现了接口的方法fun(),通过将类B和类C的实例赋给接口引用a而实现了方法在运行时的动态绑定,充分利用了“一个接口,多个方法”展示了Java的动态多态性。
需要注意的一点是:Java在利用接口变量调用其实现类的对象的方法时,该方法必须已经在接口中被声明,而且在接口的实现类中该实现方法的类型和参数必须与接口中所定义的精确匹配。
结束语
以上就是java运行时多态性的实现方法,大家在编程过程中可以灵活运用,但是在性能要求较高的代码中不提倡运用运行时多态,毕竟Java的运行时动态方法调用较之普通的方法调用的系统开销是比较大的。
举例说明:
//定义接口InterA
interface InterA
{
void fun();
}
//实现接口InterA的类B
class B implements InterA
{
public void fun()
{
System.out.println(“This is B”);
}
}
//实现接口InterA的类C
class C implements InterA
{
public void fun()
{
System.out.println(“This is C”);
}
}
class Test
{
public static void main(String[] args)
{
InterA a;
a= new B();
a.fun();
a = new C();
a.fun();
}
}
输出结果为:
This is B
This is C
上例中类B和类C是实现接口InterA的两个类,分别实现了接口的方法fun(),通过将类B和类C的实例赋给接口引用a而实现了方法在运行时的动态绑定,充分利用了“一个接口,多个方法”展示了Java的动态多态性。
需要注意的一点是:Java在利用接口变量调用其实现类的对象的方法时,该方法必须已经在接口中被声明,而且在接口的实现类中该实现方法的类型和参数必须与接口中所定义的精确匹配。
结束语
以上就是java运行时多态性的实现方法,大家在编程过程中可以灵活运用,但是在性能要求较高的代码中不提倡运用运行时多态,毕竟Java的运行时动态方法调用较之普通的方法调用的系统开销是比较大的。
0 0
- 接口实现多态
- 接口实现多态
- 接口与实现:接口回调与接口多态
- C#接口实现多态
- java接口实现多态
- 黑马程序员—接口实现多态
- C#多态实现之接口
- 利用接口来实现多态
- c#多态的重要实现-接口
- C#基础-----接口实现多态
- 利用多态实现模块接口隔离
- 反射机制实现接口多态
- c#多态 (三) 接口实现多态
- C#中的接口实现多态
- C#实现多接口
- 实现多接口
- 接口多实现
- 接口----多实现
- (MediaPlayer和SoundPool)Android中的音频播放
- Oracle脚本编写“青铜”守则
- Android 结合实例学会AsyncTask的用法
- IOS常用库整理
- 【媒体应用:Android平台Vitamio播放器探索之路系列】之一:Vitamio开篇
- 接口实现多态
- C++面试题
- Android入门开发--微博列表模拟
- 开启PHP的error_log
- the file path datafile/oradata/sysaux01.dbf is invalid.please check the permissions.
- Objective-C协议和委托
- C语言快速排序
- 走台阶问题
- 图像分块并保存matlab实现