美文网首页
静态方法不存在任何静态分派机制

静态方法不存在任何静态分派机制

作者: BlackNeko | 来源:发表于2017-01-03 20:13 被阅读21次
class Dog {
    public static void bark() {
        System.out.println("woof");
    }
}

class Basenji extends Dog {
    public static void bark() {
        //do nothing
    }
}
Dog dog = new Dog();
dog.bark();

Dog nipper = new Basenji();
nipper.bark();

Basenji basenji = new Basenji();
basenji.bark();

输出

woof
woof

静态方法不存在任何静态分派机制,当一个程序调用静态方法、字段时,要被调用的方法、字段都是在编译时刻被选定的,而这种选定是基于修饰符的编译期类型而做出的,修饰符的编译期类型就是我们给出的方法调用表达式原点左边的名字。

不要用类实例来调用静态方法。

相关文章

  • 静态方法不存在任何静态分派机制

    输出 静态方法不存在任何静态分派机制,当一个程序调用静态方法、字段时,要被调用的方法、字段都是在编译时刻被选定的,...

  • Java静态分派、动态分派、双重分派

    动态分派和静态分派机制是java多态的实现原理。 静态分派(方法重载) 静态分派机制最典型的代码: 这段代码执行完...

  • Java 分派

    静态分派 重载属于静态分派 靠静态类型来判断 如上代码中输出为: 动态分派 重写属于动态分派 靠实际类型来判断 如...

  • Java方法分派

    静态分派 - 方法重载分派编译期确定根据调用者的声明类型和方法参数类型分派 动态分派 - 方法重写分派运行时确定根...

  • Swift中的VTable简述

    在Swift中方法的调度分为静态方法直接调用与动态分派两种方式 静态方法静态方法表示其为不可变的,为了提高调用的效...

  • java虚拟机之方法调用(下)——单分派与多分派

    前言 上一篇讲解了静态分派和动态分派,还不清楚的同学可以先看看:java虚拟机之方法调用(上)——静态分派与动态分...

  • Java中的静态分派和动态分派

    静态分派 有如下代码: 在客户端定义了几个方法并调用如下: 输入结果为: 静态分派:对应Java语言的重载(Ove...

  • 多态->分派

    摘抄深入理解java虚拟机目标 分派包括: 静态分派与动态分派两种类型, 静态分派的使用场景为重载, 动态分派使用...

  • JVM分派

    1.静态分派-针对方法重载 输出结果是 Human是静态类型或外观类型,后面指向的Man则是实际类型。静态类型的变...

  • (JVM)Java虚拟机:静态分派 & 动态分派 原理解

    前言 了解 行为方法分派 有利于在行为分派时时进行一些功能操作 本文全面讲解行为分派的类型:静态 & 动态行为分派...

网友评论

      本文标题:静态方法不存在任何静态分派机制

      本文链接:https://www.haomeiwen.com/subject/yfmnvttx.html