静态多态性和动态多态性的主要区别在于,静态多态性是一种在编译时解析的多态性,而动态多态性是一种在运行时解析的多态性。
OOP是一种流行的软件范例,它允许程序员将真实世界的场景建模为对象。多态性是OOP的一个主要支柱。它指的是一个对象以不同方式执行任务的能力。静态多态和动态多态是多态的两种类型。程序员可以使用Java实现多态性概念。
1.什么是Java中的静态多态性-定义,功能2.什么是Java中的动态多态性-定义,功能3.Java中静态多态性和动态多态性的区别-主要差异的比较
动态绑定,动态多态性,早期绑定,Java,OOP,后期绑定,多态性,静态绑定,静态多态性
静态多态性(或早期绑定)是一种在编译时解析的多态性。方法重载是静态多态性的一个例子。在方法重载中,存在同名但参数不同的方法。换句话说,有些方法具有相同的名称,但它们具有不同的数据类型和不同数量的参数。此外,要调用的方法是在编译时确定的。示例程序如下。
Figure 1: Static Polymorphi** in Java
测试类中有两个同名的方法“add”。第一个add方法接受两个整数并返回这两个数的和。类似地,第二个add方法接受三个整数并返回这三个数的和。在main方法中,有一个类型测试类的对象。然后,对对象调用add方法。第12行使用两个参数调用add方法,而第13行使用三个参数调用add方法。同样,要调用的方法在编译时确定。
动态多态性(或后期绑定)是在运行时解决的一种多态性。方法重写是动态多态性的一个例子。在方法重写中,有两个类:一个是父类,另一个是子类。但是,这两个类都有相同的方法。此外,子类中的方法覆盖父类的方法。一个例子如下。
Figure 2: Class A
Figure 3: Class B
Main class
类A有一个显示方法,类B也有一个显示方法。此外,B类扩展了A类。在main方法中,子类对象被指定给父类引用。它决定在运行时调用哪个方法。然后,使用对象调用display方法。程序员可以看到类B的display方**在执行。换句话说,类A的display方法被类B的display方法覆盖。
静态多态是一种多态性,它在编译时收集信息调用方法,而动态多态性是一种多态性,它收集信息以在运行时调用方法。因此,这是静态多态性和动态多态性的主要区别。
静态多态性的同义词是静态绑定和早期绑定,而动态绑定和晚期绑定是动态多态性的同义词。
静态多态性发生在编译时,而动态多态性发生在运行时。因此,这是静态和动态多态性之间的另一个区别。
此外,静态多态性和动态多态性的一个重要区别是,静态多态性的执行速度较高,而动态多态性的执行速度较低。
方法重载是静态绑定的一个例子,而方法重写是动态绑定的一个例子。
总的来说,多态性是OOP的一个支柱,它描述了对象以多种方式进行行为的能力。简言之,静态多态性和动态多态性是多态性的两种类型。静态多态性和动态多态性的主要区别在于,静态多态性是一种在编译时解析的多态性,而动态多态性是一种在运行时解析的多态性。
1.Singh,Chaitanya,et al.“Java中的多态性类型-运行时和编译时多态性”,《初学者手册》,2017年9月12日,可在此处获得。2.“Java中的方法重载–Javatpoint”,Www.Javatpoint.com,可在此处获得。 2.“Java中的方法重载–Javatpoint”,Www.Javatpoint.com,
...内存分配有效。一个缺点是实现动态内存分配很复杂。 静止的(static)和动态内存分配(dynamic memory allocation)的共同点 两者都是内存分配机制。 两者都应该由程序员手动实现。 静止的(static)和动态内存分配(dynamic memory allocation)的...
...明为final。Java支持面向对象编程(OOP)。OOP的一个支柱是多态性。一种多态性是重写的。类具有display方法。类B扩展了类A,它有自己的显示方法。当创建类型为B的对象并调用display方法时,将输出“B”。类A的显示方法被类B的显...
...nd dynamic binding)? 这两者都与允许对象以多种方式表现的多态性有关。 静态绑定(static binding)和动态绑定(dynamic binding)的区别 静态绑定与动态绑定 静态绑定是在编译期间收集调用函数所需的所有信息的绑定类型。 动...
...封装四大支柱。本文讨论了OOP中多态与继承的区别。OOP中多态性与继承的关键区别在于多态性是一个对象以多种方式表现的能力,而继承则是使用现有类的属性和方法创建一个新的类。 目录 1. 概述和主要区别 2. 什么是OOP中的多...
...的实例。这些对象与其他对象通信。OOP的一个主要概念是多态性。它是一个对象以多种方式表现的能力。多态性分为重载和重写两部分。本文将在Java中讨论这两者之间的区别。Java中重载和重写之间的关键区别在于,重载是使用...
...更受读者的喜爱。这提供了对这两类字符的基本理解。 静止的(static)和动态特性(dynamic characters)的区别 •静态人物在整个小说中没有发生任何变化,从头到尾都保持不变。这些大多是故事中的小人物。 •另一方面,动态角色在...
静态与动态路由 静态路由和动态路由的区别在于路由条目进入系统的方式。计算机网络中的路由是指在计算机网络中正确地转发数据包,使数据包最终到达正确的目的地的过程。路由主要有静态路由和动态路由两种类型。在...
...没有人可以继承它,从而访问它的成员变量。 什么是静止的(static)? 静态变量不属于类的特定实例。静态变量属于类本身,在内存中只有一个位置,而不管在内存中创建的类的副本数是多少。非静态变量属于类样本–类的每...
...然而,这种情况在机械意义上比化学意义上更有意义。 静止的(static)和动态平衡(dynamic equilibrium)的区别 定义 动态平衡是反应物转化为产物,产物以相等且恒定的速率转化为反应物的平衡。 静态平衡是当反应中的所有粒子都处于...
...站。电子商务网站和社交媒体网站是***站的两个例子。 静止的(static)和***站(dynamic website)的区别 定义 静态网站是一个网站,它的网页是用HTML编码的,每个网页的内容都是固定的,除非经过编辑和重新发布,否则不会改变。***站...