什么是静态多态性?它和重载有何不同?

如题所述

多态性的实现与静态联编、动态联编有关。静态联编支持的多态性称为编译时的多态性,也称静态多态性,它是通过函数重载和运算符重载实现的。动态联编支持的多态性称为运行时的多态性,也称动态多态性,它是通过继承和虚函数实现的。

C++允许在参数类型不同的前提下重载函数。重载的函数与具有多态性的函数(即虚函数)不同处在于:调用正确的被重载函数实体是在编译期间就被决定了的;而对于具有多态性的函数来说,是通过运行期间的动态绑定来调用我们想调用的那个函数实体。多态性是通过重定义(或重写)这种方式达成的。请不要被重载(overloading)和重写(overriding)所迷惑。重载是发生在两个或者是更多的函数具有相同的名字的情况下。区分它们的办法是通过检测它们的参数个数或者类型来实现的。重载与CLOS中的多重分发(multiple dispatching)不同,对于参数的多重分发是在运行期间多态完成的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-01-23
去找C#的书吧.
我刚好也在学。
懒的打字哇....也要考试了.5555555555555

什么是静态多态性?它和重载有何不同?
多态性的实现与静态联编、动态联编有关。静态联编支持的多态性称为编译时的多态性,也称静态多态性,它是通过函数重载和运算符重载实现的。动态联编支持的多态性称为运行时的多态性,也称动态多态性,它是通过继承和虚函数实现的。C++允许在参数类型不同的前提下重载函数。重载的函数与具有多态性的函数(...

什么是静态多态?它与重载有何区别?
静态意思是不用声明类的实例就可以通过类名调用的方法的类型;静态的就好像是共有的一样;多态指的是类的形态可以是多种多样的一样,它包括“重载”和“重写”“重载”是指在同一个类中相同的返回类型和方法名,但是参数的个数和类型可以不同;“重写”是指在不同的类中。

什么是静态多态?它与重载有何区别?
如果说动态多态是通过虚函数来表达共同接口的话,那么静态多态则是通过"彼此单独定义但支持共同操作的具体类"来表达共同性,换句话说,必须存在必需的同名成员函数。 我们可以采用静态多态机制重写上一节的例子。这一次,我们不再定义vehicles类层次结构,相反,我们编写彼此无关的具体类Car和Airplane(它们都有一个run()成员...

我想问一下多态和重载的区别
1、多态是建立在重写的基础之上的,是类与类之间的关系,而重载必须在同一个类中。2、多态是动态的,属于动态联编,发生在运行阶段。重载可认为是静态的多态,属于静态联编,发生在编译阶段。在Java中,接口的多种不同的实现方式即为多态。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象...

Java静态多态性和动态多态性有何区别?
静态多态性指的是程序在编译时,系统就能决定调用哪个函数,如重载。 \\x0d\\x0a动态多态性指在运行中才能动态确定操作指针所指的对象,主要通过虚函数和重写来实现。 \\x0d\\x0ajava 的多态机制遵循一个原则:当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的...

什么是多态?它和重载有什么区别?
多态是指同一操作或方法在不同的对象上有不同的行为。在编程中,通过多态,可以使用相同的接口处理不同的对象,提高代码的可扩展性和可维护性。例如,假设有一个基类Animal,其子类包括Dog和Cat,通过多态,使用相同的makeSound()方法处理不同类型的动物对象。重载则是在同一个类中允许定义多个相同名字的...

C++中函数重载能实现动态多态性还是静态多态性?
C++中的函数重载能实现静态多态性。细节如下:多态是指同一个名称可以代表不同的含义;多态可以分为静态多态和动态多态;静态多态是编译时的多态;动态多态是运行时的多态。静态多态是通过函数重载、运算符重载实现;动态多态是通过虚函数实现的。

C++静态多态是什么意思?
这两种形式的多态在实现机制上有着本质的差别。1、静态多态可以称为编译期多态,它是在编译期间通过函数重载和运算符重载的方式决定被调用函数的。2、动态多态可以称为运行期多态,它可以通过继承和虚函数来实现。实现时,编译器将在进程运行的过程中动态的捆绑想要调用的函数 。

重载意思是什么
关于“重载”的含义,有两种常见的理解:首先,它是多态的一种体现,特别是在C++中,存在四种类型的多态性,如虚函数多态、模板多态、重载和隐式类型转换。其中,重载是静态多态,即在编译阶段就能确定调用哪个函数,因为编译器会根据函数的参数类型生成不同的函数名(如int_foo和char_foo)来区分。这种...

什么是多态和重载?
多态(Polymorphisn),按字面的意思就是“多种形状”。多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是所有可以放父类对象的地方都可以用它的子类对象来代替,并且有着子类对象的特性,如...

相似回答