Java运行时多态性的实现_Java编程

  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的运行时动态方法调用较之普通的方法调用的系统开销是比较大的。

时间: 2024-11-03 05:31:36

Java运行时多态性的实现_Java编程的相关文章

Java运行时多态性的实现

  运行时多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成"一个接口,多个方法".Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,下面就继承和接口实现两方面谈谈java运行时多态性的实现. 一.通过继承中超类对象引用变量引用子类对象来实现 举例说明: //定义超类superA class superA { int i = 100; void fun() { System.out.println("Thi

什么是Java ?Java详解之Java运行时环境

Java运行时环境,即Java Runtime Environment,简称为JRE,是在任何平台上运行Java编写的程序都需要用到的软件.终端用户可以以软件或者插件方式得到和使用JRE.Sun公司还发布了一个JRE的更复杂的版本,叫做JDK,即Java 2 开发包,里面包含了Java需要的编译器.参考文档和调试器等. JRE的成分: Java的类库,包含了编译Java程序所需要的最核心文件. 核心库文件,其中有 数据结构的库,包括列表.字典和树等 XML分析库 安全方面应用库 国际化和本地化应

java基础-java运行时出现“a java exception has occurred”怎么办?

问题描述 java运行时出现"a java exception has occurred"怎么办? 我的java版本是Luna service release 1(4.4.1),已经配置了JDK环境,是不是要下载虚拟机啊?怎么下载啊?下面是我的代码: package java; public class sub { public static void main(String[] args) { // TODO Auto-generated method stub String str

JAVA运行时异常及检查式异常

java运行时异常是可能在java虚拟机正常工作时抛出的异常.java提供了两种异常机制.一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption). 检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常.对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常. JDK1.7中有: EOFException 文件已结束异常 FileNotFou

举例讲解Java的RTTI运行时类型识别机制_java

1.RTTI:运行时类型信息可以让你在程序运行时发现和使用类型信息. 在Java中运行时识别对象和类的信息有两种方式:传统的RTTI,以及反射.下面就来说下RTTI. RTTI:在运行时,识别一个对象的类型.但是这个类型在编译时必须已知. 下面通过一个例子来看下RTTI的使用.这里涉及到了多态的概念:让代码只操作基类的引用,而实际上调用具体的子类的方法,通常会创建一个具体的对象(Circle,Square,或者Triangle,见下例),把它向上转型为Shape(忽略了对象的具体类型),并在后面

Java运行时绑定探讨

运行时绑定也叫动态绑定,它是一种调用对象方法的机制.Java调用对象方法时,一般采用运行时绑定机制. 1.Java的方法调用过程 编译器查看对象的声明类型和方法名(对象变量的声明类型).通过声明类型找到方法列表. 编译器查看调用方法时提供的参数类型. 如果方法是private.static.final或者构造器,编译器就可以确定调用那个方法.这是静态绑定. 如果不是上述情况,就要使用运行时(动态)绑定.在程序运行时,采用动态绑定意味着:虚拟机将调用对象实际类型所限定的方法. 2.运行时(动态)绑

Windows7下的Java运行环境搭建过程图解_java

第一步:下载JDK 地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,(由于Sun于2009年被oracle收购所以网址是oracle的) 单击"Java Download"按钮. 选中"Accept License Agreement"单选按钮. 我们以Windows 64位操作系统为例,下载Windows X64版的jdk.单击"jdk-8u5-windows-x

跟我学Java Swing之游戏设计(1)_Java编程

文章来源:电脑爱好者 作者:张剑 谁知道通天的巴比伦塔耗费了多少沙石?又有谁知道罗马的建成经历了多少个日夜?我们惟一知道的是,没有一块块砖石的垒砌,就没有蜿蜒万里的长城;没有巨石和黏土的堆集,就没有亘古不变的金字塔.由此可见,基础知识的准备对于我们学习任何事物都至关重要,那么,就让我们从认识Swing的一些基础功能开始,启动我们建造罗马的伟大工程吧! 前言 Java咖啡馆已经开张不少时日了,如果你已经喜欢上了Java这杯咖啡的味道,那么记得常来哦.这一次,我们为大家准备了一大杯香浓的咖啡--将以

Java运行时监控,第1部分: Java系统运行时性能和可用性监控

简介 当今的许多 Java 应用程序都依赖于一组复杂的分布式依赖关系和移动部件.很多外部因素都可能对应用程序的性能和可用性造成影响.这些影响基本上都无法完全消除或解决,且难以在预生成环境中准确模拟.Stuff happens.但是,您可以创建并维护一个全面的系统来监控应用程序的整个生态系统,从而显著降低这些事件的严重性和持续时间. 本系列文章给出了实现此类系统的一些模式和技巧.模式,以及我将使用的一些术语,都表示泛指.通过结合示例代码和插图,它们将帮助您理解应用程序性能监控的概念.这种理解强调解