`

静态方法没有多态表现

 
阅读更多
class Super{
   static String greeting(){
       return "晚上好";
}
   String name(){
        return "父类";
}
}
class Sub extends Super{
   static String greeting(){
       return "您好";
}
   String name(){
        return "子类";
}
}
class differ {
    public static void main(String args[]){
      Super s= new Sub();
      System.out.println(s.greeting()+","+s.name());
}
}
输出结果为
晚上好,子类
“晚上好”是父类方法的输出,而“子类”是子类方法的输出,这是由于greeting是一个静态方法,它没有运行时多态的特性,它的调用在s声明时就已经确定好了
造成这种区别的原因很简单,实例方法总是和某个对象绑定在一起,而静态方法则没有与某个对象绑定在一起也就无从查找调用时该对象实际所属的类别
分享到:
评论

相关推荐

    Typescript中的类 类中的静态属性 静态方法 抽象类 多态.zip

    本压缩包包含的代码实例着重讲解了类中的静态属性、静态方法、抽象类以及多态这四个核心概念。 1. **静态属性**: 类的静态属性并不属于类的实例,而是直接属于类本身。它们在类的所有实例之间共享,不随实例创建...

    C++中的静态多态和动态多态

    的C++已经是个多重泛型编程语言(multiparadigm programming lauguage),一个同时支持过程形式(procedural)... C++支持多种形式的多态,从表现的形式来看,有虚函数、模板、重载等,从绑定时间来看,可以分成静态多态和

    多态示例代码

    在Java等面向对象语言中,多态分为编译时多态(静态多态)和运行时多态(动态多态)。编译时多态主要通过方法重载(Overloading)实现,而运行时多态则依赖于方法重写(Overriding)和接口的实现。 2. **类型转换**...

    原来多态还可以这样

    静态多态通常通过函数重载或运算符重载实现,而动态多态则依赖于接口、继承和虚函数等机制。 1. 静态多态:在编译期间就能确定调用哪个函数,例如C++中的函数重载,可以根据传入参数的不同选择合适的函数执行。这...

    多态代码实例

    在面向对象编程中,多态分为静态多态(编译时多态)和动态多态(运行时多态)。静态多态主要通过函数重载和运算符重载实现,而动态多态则主要依赖于虚函数。 虚函数是在基类中声明的,并且被派生类重写的成员函数。...

    java之中的静态变量与静态方法的继承与覆盖问题.doc

    在 `Test1` 类的 `main` 方法中,`a.a()` 输出 "a",说明静态方法 `a()` 在子类 `B` 中没有被覆盖,且静态方法的调用总是基于实际的类引用,而不是指向对象的引用类型。 Java 不建议使用对象引用来调用静态方法,...

    C++继承与多态例子

    静态多态主要通过函数重载和运算符重载实现,而动态多态则依赖于虚函数和抽象类。 虚函数是C++中实现动态多态的关键。在基类中声明虚函数,可以让子类覆盖这个函数并提供自己的实现。这样,我们就可以通过基类指针...

    多态的应用

    静态多态主要通过函数重载和运算符重载来实现,而动态多态则依靠虚函数(virtual function)和继承机制。 1. 函数重载:在同一作用域内,可以有多个同名函数,但参数列表不同(如参数个数、类型或顺序)。编译器会...

    61 多态案例二-PK小游戏.rar

    在C++中,有两种实现多态的方式:静态多态(编译时多态)和动态多态(运行时多态)。静态多态通过函数重载和运算符重载来实现,而动态多态则主要依赖于虚函数和抽象类。 在这个PK游戏中,我们可以假设有一个基类,...

    C++多态PPT

    C++中的多态有两种形式:静态多态(Static Polymorphism)和动态多态(Dynamic Polymorphism)。静态多态主要通过函数模板和运算符重载在编译时实现,而动态多态则是通过虚函数在运行时实现。 **总结** C++的多态...

    继承和多态.doc

    多态分为静态多态(如方法重载)和动态多态(如方法重写)。 1. **静态多态**:主要体现在编译时期确定的方法重载(overloading),如函数参数类型的不同。 2. **动态多态**:主要体现在运行时通过虚函数机制实现...

    c++ 的封装继承多态例子

    静态多态主要通过函数重载和运算符重载实现,即在编译期间根据参数列表的不同选择合适的函数执行。动态多态则依赖于虚函数(`virtual`关键字)和纯虚函数(`= 0`),通过基类指针或引用调用派生类的成员函数,实现...

    多态设计游戏示例

    首先,我们要理解多态性的两种主要形式:静态多态(编译时多态)和动态多态(运行时多态)。静态多态通常通过函数重载和运算符重载实现,而动态多态则依赖于接口(如抽象类或接口)和继承。 在游戏中,多态性可以...

    Java面向对象的3大特征之多态

    方法重载是静态多态的一种形式,它指的是在同一个类中定义多个同名方法,但是方法的参数列表不同。在编译时,编译器根据参数的不同来确定调用哪个方法。 对象多态的实现案例可以更直观地理解这一点。在没有多态的...

    多态简单工厂

    首先,多态(Polymorphism)是指同一种行为或操作可以有不同的表现形式,它允许我们用一个接口来表示多种类型,使得代码更加灵活和可扩展。在C#中,多态主要通过继承、接口和方法重载等方式来实现。继承是子类从父类...

    集合+接口+继承+多态。。

    Java 8引入了默认方法和静态方法,使得接口的功能更加丰富。 3. **继承**: 继承是面向对象编程的重要特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。这样,子类不仅具有自身定义的特性,还能继承...

    5第五章 继承与多态.ppt

    多态有两种形式:编译时多态(静态多态,通过方法重载实现)和运行时多态(动态多态,通过方法重写实现)。 在Java中,多态的实现依赖于以下几点: 1. **抽象类和接口**:抽象类定义了子类必须实现的接口,而接口则...

    详解C++ 多态的两种形式(静态、动态)

    多态分为静态多态和动态多态两种形式。 1. 静态多态(Static Polymorphism) 静态多态主要体现在编译时,它依赖于函数重载和模板(泛型编程)。函数重载允许在同一作用域内定义多个同名函数,但参数列表不同,...

    深入Java核心Java中多态的实现机制.pdf

    在Java中,动态多态主要通过继承和接口实现,而静态多态则主要通过方法重载(Overloading)实现。 1. **动态多态(子类型多态)**: - 动态多态基于继承和多态的规则,如标题和描述中提到的,只有通过基类类型的...

    毕向东多态0803

    在Java中,成员变量(包括实例变量和静态变量)在多态中的表现遵循“静态绑定”(早期绑定),即在编译阶段就已经确定了调用哪个类的成员变量。因此,无论通过父类还是子类的引用访问这些变量,都将得到与引用类型...

Global site tag (gtag.js) - Google Analytics