`
lichaozhangobj
  • 浏览: 100846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java静态分派

    博客分类:
  • java
阅读更多

静态分派发生在编译时期,分派根据静态类型信息发生。方法重载就是静态分派

 

public class BlackHorse implements Horse{

}

 

public class BlackHorse implements Horse{

}

 

public class WhiteHorse implements Horse {

}

 

public class Mozi {

    public void ride(Horse h){
        System.out.println("Riding a horse");
    }
    public void ride(WhiteHorse h){
        System.out.println("Riding a white horse");
    }
    public void ride(BlackHorse h){
        System.out.println("Riding a black horse");
    }
}

 

public class Client {

    public static void main(String[] args) {
        Horse horse = new BlackHorse();
        Horse horse2 = new WhiteHorse();
        
        Mozi mozi = new Mozi();
        mozi.ride(horse);
        mozi.ride(horse2);
    }
}

  运行结果:

Riding a horse
Riding a horse

 

分享到:
评论

相关推荐

    Java的动态分派和静态分派的实现

    Java的动态分派和静态分派的实现 Java 的动态分派和静态分派是 Java 实现多态的本质背景。Java 的动态分派和静态分派也是 Java 方法的执行原理。在 Java 中,方法的调用是使用符号引用来表示的。当字节码被 JVM ...

    【深入Java虚拟机(5)】多态性实现机制-静态分派与动

    了解静态分派和动态分派对于理解Java的多态行为至关重要,它们是优化代码、避免类型检查开销以及设计高效面向对象系统的基础。在实际编程中,合理利用这两种机制可以提高代码的可读性和可维护性,同时也能充分利用...

    JVM 方法调用之静态分派(详解)

    "JVM 方法调用之静态分派详解" 静态分派是JVM 方法调用中的一种机制,根据分派依据的宗量数可分为单分派和多分派。静态分派的典型应用是方法重载,发生在编译阶段,因此确定静态分派的动作实际上不是由虚拟机来执行...

    Java的动态绑定与双分派_动力节点Java学院整理

    理解动态绑定、静态绑定和双分派的概念对于深入掌握Java的面向对象编程至关重要。它们不仅影响代码的可读性、可维护性,还关系到性能和设计模式的运用。在实际开发中,合理利用这些特性可以编写出更加灵活和高效的...

    JVM调用Lambda的表达式实现方法原理详解.docx

    Java中主要是静态分派和动态分派,但不支持静态多分派和动态多分派。 Lambda表达式的实现原理与`invokedynamic`指令密切相关。Lambda表达式本质上是匿名函数,它们的创建和调用过程涉及到类型推断、方法句柄以及`...

    Java pitfalls图书

    Java中的方法分派包括静态分派和动态分派,这个类可能包含关于多态性或方法重载的示例。 这些类涵盖了Java编程中的多个方面,包括集合操作、持久化、GUI布局、对象序列化、库管理以及测试实践。了解这些知识点对于...

    16.方法调用1

    在静态分派中,如Java的多态方法重载,调用版本在编译时就已经确定。而在动态分派中,如方法覆写,调用版本取决于运行时对象的实际类型,这体现了Java的多态性特点。 例如: ```java class Human {} class Man ...

    深入理解Java虚拟机笔记(带目录).docx

    *静态分派(Static Dispatch):根据静态类型进行分派。 * 虚分派(Virtual Dispatch):根据虚方法表进行分派。 虚方法表 Java 中的虚方法表用于存储虚方法的信息,包括方法的名称、描述符和方法体。 Java 内存...

    java Java Servlet小程序

    此外,`Java.jpg`可能是Servlet应用程序中使用的静态资源,如图片。在Servlet容器中,通常静态资源(如图片、CSS、JavaScript文件)会被直接由Web服务器提供,而无需经过Servlet处理。在部署应用时,这些静态资源...

    给java新手的一些建议-java知识点归纳(java基础部份) (2).pdf

    理解它们的概念、应用场景,以及静态多分派和动态单分派、重载、接口多实现、基类单继承、抽象类、接口、多态(方法覆盖和接口回调)等概念,是成为合格Java开发者的必备条件。 最后,静态属性(Static)是Java中的...

    给java新手的一些建议-java知识点归纳(java基础部份).pdf

    例如,了解静态多分派和动态单分派的概念,方法重载的规则,接口多实现和类单继承的原则,以及抽象类、接口和多态的运用。 静态属性在Java开发中扮演着重要角色。开发者需要理解静态属性的概念,它们在类加载时如何...

    访问者模式商量篇:java的动态绑定与双分派_.docx

    在Java编程中,动态绑定和静态绑定是两种不同的方法调用机制,它们分别适用于不同的场景。动态绑定,也称为晚期绑定或多态性,是指在程序运行时根据对象的实际类型来决定调用哪个方法。静态绑定,又称为早期绑定,是...

    Java语言的必知的技术点汇总.doc.pdf

    静态多分派和动态单分派,以及重载、继承、接口多实现、基类单继承、抽象类和接口、方法覆盖和多态等概念,构成了Java语言的复杂性和灵活性。 总的来说,掌握上述技术点不仅能够提升开发者编写高质量代码的能力,也...

    java虚拟机.doc

    Java虚拟机的多线程实现是通过线程轮番切换并分派处理器执行时刻的方法来实现的。Java虚拟机的垃圾收集器(Garbage Collector)负责收集垃圾对象,以释放内存空间。垃圾收集器的算法包括引用计数算法和根搜索算法。...

    2014年Java最全面试题以及答案.

    Java支持四种类型的内部类:成员内部类、局部内部类、匿名内部类和静态内部类。成员内部类可以访问外部类的所有成员,包括私有成员;局部内部类只能在定义它的方法或作用域中使用;匿名内部类适用于创建只需要一次...

    static-dispatch:Common Lisp的静态泛型函数分派

    静态分派的目的是在通常的动态分派太慢并且不需要通用函数的动态功能(例如在运行时添加/删除方法)的情况下提供优化。 这种情况的一个例子是通用相等性比较函数。 当前,当在数字代码中大量使用泛型函数时,泛型...

    大厂真题之京东-Java实习生.pdf

    而分派则涉及方法调用,包括静态分派(编译期确定)和动态分派(运行期确定),涉及到多态性的实现。 这些知识点构成了Java开发者必须掌握的基础,也是在大厂实习面试中常见的问题。理解和掌握这些内容,将有助于...

    JAVA JVM原理资料

    - 静态类型的面向对象系统,支持单一继承但可以有多个接口。 - 早绑定与晚绑定的方法分派机制。 - 内置的反射机制。 - 自动化的内存管理机制。 - 多线程支持。 - 泛型编程的支持。 - 用户定义的注解及其处理...

    从虚拟机指令执行的角度分析JAVA中多态的实现原理.docx

    在JVM执行字节码时,会经历静态分派和动态分派两个阶段。静态分派在编译时期完成,如方法重载的解析;动态分派在运行时进行,如方法的虚调用。当调用虚方法(非final、非private的方法)时,JVM会查找对象的实际...

Global site tag (gtag.js) - Google Analytics