JAVA多态的实现方式
2015-12-06 16:22
501 查看
多态从实现的角度分为:静态多态和动态多态
静态多态也叫做编译时多态
动态多态也叫做运行时多态
举例说明:
举例说明
例一:
输出:I'm A
I'm B
例二:
输出:I'm B
I'm C
静态多态也叫做编译时多态
动态多态也叫做运行时多态
1.静态的多态:
函数重载是静态的多态的一种实现形式:举例说明:
class MethodOverloading { viod receive(int i) { System.out.println("Received one int data"); System.out.println("i="+i); } viod receive(float f) { System.out.println("Received one float data"); System.out.println("f="+f); } viod receive(String s) { System.out.println("Received a String"); System.out.println("s="+s); } } <pre>方法重载是在编译时就已经确定的,所以属于静态多态
2.动态的多态:
子类覆盖父类的方法,将子类的实例传与父类的引用调用的是子类的方法;实现接口的实例传与接口的引用调用的实现类的方法。举例说明
例一:
public class A{ public void fun1(){ System.out.println("I'm A"); } } public class B extends A{ public void fun1(){ System.out.println("I'm A"); } } public Test{ public static void main(String[]args){ A a1 = new A(); A a2 = new B(); a1.fun1(); a2.fun1() } }
输出:I'm A
I'm B
例二:
public interface A{ public void fun1(){} } public class B implements A{ public void fun1(){ System.out.println("I'm B"); } } public class B implements A{ public void fun1(){ System.out.println("I'm C"); } } public Test{ public static void main(String[]args){ A a1 = new B(); A a2 = new C(); a1.fun1(); a2.fun1() } }
输出:I'm B
I'm C
相关文章推荐
- struts2中的ValueStack学习
- java经典问题
- Java_31-40
- 我的第十个java程序--(其实是修改别人的web代码{springmvc+mybatis},知道了原理后其实一切都变的很简单)
- struts2 标签的使用之一 s:if
- [转]探究java IO之FileInputStream类
- <%@ taglib prefix="s" uri="/struts-tags" %>地址问题
- java中的增强型for循环
- eclipse笔记——工程之间相互引用
- Flex页面报java.lang.NullPointerException
- java 求一个数每一个位上面的数
- 在Sublime Text 3中配置编译和运行Java程序
- 单例模式java代码
- Spring中的AOP配置
- Java多线程(三)、线程同步
- java 程序的启动界面
- JAVA设计模式之单例模式
- eclipse 远程debug配置
- Java finally语句到底是在return之前还是之后执行?
- 将java程序做成可执行文件