如下面代码:
package cn.lifx.test;
public class Test
{
public static void whichFoo(Base arg1, Base arg2)
{
arg1.foo(arg2);
}
public static void main(String[] args)
{
Base b = new Base();
Derived d = new Derived();
whichFoo(b, b);
whichFoo(b, d);
whichFoo(d, b);
whichFoo(d, d);
}
}
class Base
{
public void foo(Base x)
{
System.out.println("Base.Base");
}
public void foo(Derived x)
{
System.out.println("Base.Derived");
}
}
class Derived extends Base
{
public void foo(Base x)
{
System.out.println("Derived.Base");
}
public void foo(Derived x)
{
System.out.println("Derived.Derived");
}
}
输出为:
Base.Base
Base.Base
Derived.Base
Derived.Base
如下面代码:
package cn.lifx.test;
public class Test
{
public static void whichFoo(Base arg1, Base arg2)
{
arg1.foo(arg2);
}
public static void main(String[] args)
{
Base b = new Base();
Base base = new Derived();
Derived d = new Derived();
base.foo(b);
base.foo(d);
d.foo(b);
d.foo(base);
System.out.println();
whichFoo(b, b);
whichFoo(b, d);
whichFoo(d, b);
whichFoo(d, d);
}
}
class Base
{
public void foo(Base x)
{
if(x instanceof Derived)
{
System.out.println("Base.Derived");
}
else if(x instanceof Base)
{
System.out.println("Base.Base");
}
}
}
class Derived extends Base
{
public void foo(Base x)
{
if(x instanceof Derived)
{
System.out.println("Derived.Derived");
}
else if(x instanceof Base)
{
System.out.println("Derived.Base");
}
}
}
输出为:
Derived.Base
Derived.Derived
Derived.Base
Derived.Derived
Base.Base
Base.Derived
Derived.Base
Derived.Derived
分享到:
相关推荐
在Java编程语言中,动态绑定和静态绑定是两个重要的概念,它们涉及到方法调用和多态性。了解这两个概念对于深入理解面向对象编程至关重要。本文将详细探讨它们的区别,并通过实例来阐述它们的工作原理。 首先,让...
在Java编程语言中,静态绑定和动态绑定是两个至关重要的概念,它们关乎程序的执行效率和灵活性。了解这两个概念对于提升Java开发技能至关重要。 首先,我们来解释一下静态绑定(也称为早期绑定)。静态绑定主要涉及...
"Java动态绑定和静态绑定用法实例详解" Java中的绑定机制是指将一个方法的调用与方法所在的类(方法主体)关联起来。Java中存在两种类型的绑定机制:静态绑定和动态绑定。 静态绑定是指在程序执行以前已经被绑定...
在Java编程语言中,静态绑定和动态绑定是两种不同的方法调用机制,它们与面向对象编程密切相关。这两种绑定方式决定了程序在运行时如何选择和执行特定的方法。 静态绑定(早期绑定),也称为编译时绑定,是指在程序...
Java中的静态绑定与动态绑定是面向对象编程中的关键概念,它们决定了方法调用的方式和时机。静态绑定(也称为早期绑定或编译时绑定)和动态绑定(也称为晚期绑定或运行时绑定)是Java中多态性实现的基石。 **静态...
对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。 静态绑定: 在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。 针对java简单的可以理解为程序编译期的...
Java中的静态绑定与动态绑定是面向对象编程中的两个核心概念,它们关系到程序的编译与运行时行为。理解这两个概念对于写出高效、灵活的代码至关重要。 首先,静态绑定(也称为前期绑定或编译时绑定)是指在编译期间...
Java虚拟机的动态绑定与静态绑定 大家可能都知道Java面向对象的三大特性,封装,继承,多态,其中动态绑定就与多态有关,那什么是动态绑定呢? 1.动态绑定(auto binding):也叫后期绑定,在运行时,虚拟机根据具体...
在Java中存在两种绑定方式,一种为静态绑定,又称作早期绑定。另一种是动态绑定,亦称为后期绑定。 区别对比 静态绑定发生在编译时期,动态绑定发生在运行时 使用private或static或final修饰的变量或者...
在Java编程中,动态绑定和静态绑定是两种不同的方法调用机制,它们分别适用于不同的场景。动态绑定,也称为晚期绑定或多态性,是指在程序运行时根据对象的实际类型来决定调用哪个方法。静态绑定,又称为早期绑定,是...
Java中的静态绑定和动态绑定是面向对象编程中的关键概念,它们决定了程序在运行时如何解析方法调用和访问成员变量。 静态绑定,也称为早期绑定,是指在编译期间就已经确定了方法调用的具体实现。这通常发生在方法的...
总结起来,通过RoboVM和libGDX的绑定,开发者能够在Java环境中调用iOS的静态库,实现了跨平台开发的无缝对接。这极大地扩展了libGDX的应用场景,并降低了开发iOS应用的学习曲线,尤其是在已有Java代码基础的情况下。...
理解动态绑定、静态绑定和双分派的概念对于深入掌握Java的面向对象编程至关重要。它们不仅影响代码的可读性、可维护性,还关系到性能和设计模式的运用。在实际开发中,合理利用这些特性可以编写出更加灵活和高效的...
静态绑定可以使用private、static和final修饰的方法或构造器来实现。例如,private void method(){}或static void method(){}等。 动态绑定是在运行时根据对象的运行时类型进行绑定的过程。它是Java中除静态绑定的...
本篇文章将重点讲解如何使用RabbitMQ结合Java实现一个工具类,动态地根据配置文件创建队列和绑定。 首先,我们需要了解RabbitMQ的基本概念。在RabbitMQ中,队列(Queue)是存储消息的地方,生产者(Producer)发送...
Java动态绑定和方法重载是面向对象编程中的两个核心概念,它们在Java程序设计中扮演着重要角色。这里我们将深入探讨这两个概念以及它们在实际应用中的实现。 首先,让我们了解什么是方法重载(Method Overloading)...
总结来说,静态绑定和动态绑定都是Java多态性的重要组成部分。静态绑定在编译时确定,适用于方法重载;动态绑定在运行时确定,适用于方法重写。理解这两种绑定机制有助于我们更好地设计和实现面向对象的程序,充分...
Java中的重载、重写、多态、静态绑定和动态绑定的知识点总结 Java 中的重载(Overload)是一种机制,允许在同一个类中定义多个具有相同名称的方法,这些方法的参数个数、参数类型和顺序不能相同。返回类型可以相同...
在Java中,方法绑定分为两种类型:静态绑定(Static Binding)和动态绑定(Dynamic Binding)。 1. 静态绑定(Static Binding) 静态绑定又称为早期绑定,它发生在编译阶段。编译器根据引用类型的定义来决定调用...