超载(overloading)和java中的重写(overriding in java)的区别

方法重写和重载是java编程语言中使用的两个概念或技术。这两个概念都允许程序员为同名方法提供不同的实现。本文区分了编程的两个概念。...
关键区别:重载意味着在同一类中有两个方法具有相同的名称和不同的参数类型,而重写意味着在同一类中有两个不同的方法具有相同的参数类型,但实现不同。

方法重写和重载是java编程语言中使用的两个概念或技术。这两个概念都允许程序员为同名方法提供不同的实现。本文区分了编程的两个概念。

超载(overloading)和java中的重写(overriding in java)的区别

函数重载或方法重载允许在同一类中以相同的名称创建多个方法,但函数的输入和输出类型不同。它被简单地定义为一个功能执行不同任务的能力。

在重载中,方法实现共享相同的名称,因为它们执行相似的任务。此外,重载在本质上被认为是多态的。具有不同实现的函数依赖于它们指定的参数类型。它通常与在函数调用中强制类型检查的静态编程语言相关联。它也被认为是实用的,因为它允许程序员在同一个类中编写许多不同的方法。但是,在重载时,运行时处理器会更改所有重载方法的名称,这可能是一个问题。

超载(overloading)和java中的重写(overriding in java)的区别

在面向对象编程中,方法重写是一种特性,它允许子类或子类提供已由其某个超类或父类提供的方法的特定实现。子类中的实现通过提供与父类中的方法具有相同名称、相同参数或签名以及相同返回类型的方法来重写或替换父类中的实现。

在方法重写中,函数被编码以执行程序中的特定任务。重写取决于基类函数的外观。这里,执行的函数由用于调用它的对象确定,即,如果父类的对象用于调用方法,则将执行父类中的函数。覆盖在本质上是多态的;它有助于基于第一个隐式参数设计程序,该参数可以在运行时解析。java中有一些语言允许程序员防止方法被重写。

重载和重写之间的比较:

 

超载 覆盖
定义 这意味着在相同的名称下有相同类的方法,但是每个方法有不同的参数,或者有不同类型和顺序的相同参数。 它意味着拥有一个子类,该子类具有相同的方法、相同的名称、完全相同的参数类型以及与超类相同的返回类型。
意义 这意味着在同一个类中有多个方法共享相同的名称,但具有不同的签名。 这意味着基类的方法在具有相同签名的派生类中被重新定义。
行为 它添加或扩展了方法行为。 它会更改方法的现有行为。
多态性 它是编译时多态性。 它是一个运行时多态性。
静态法 静态方法可以重载。 无法重写静态方法。
债券 静电键合。 动态键。
继承 它可能需要也可能不需要继承。 它总是需要继承。
联想 它通常与静态程序语言相关联。 它通常与面向对象的程序相关联。
签名 方法具有不同的签名。 方法必须具有相同的签名。
速度 它比重写要快。 它比超载慢。
班级 重载不需要多个类。 它至少需要两个类来重载。
水平 方法可以具有任何访问级别。 方法具有相同或广泛的访问级别。
例子 类Add{int sum(int a,int b){返回a+b;}int sum(int a){返回a+10;   }} 类A//超类{void display(int num){print num;}}//类B继承类AClass B//子类{void display(int num){print num;   }}

  • 发表于 2021-07-13 21:16
  • 阅读 ( 166 )
  • 分类:通用

你可能感兴趣的文章

压倒一切(overriding)和c中的过载#(overloading in c#)的区别

...将全部打印Shape类的显示方法的内容。 什么是c中的过载#(overloading in c#)? 在重载中,多个方法具有相同的名称,但具有不同的参数。参数可以是不同类型的。这些方法也可以有不同数量的参数。方法重载发生在同一个类中。重...

  • 发布于 2020-10-18 23:50
  • 阅读 ( 218 )

等于(equals)和java中的hashcode(hashcode in java)的区别

...是一种方法,类通过该方法隐式或显式地将存储在类实例中的数据分解为单个哈希值,该散列值是一个32位有符号整数。在Java中,equals和hashCode之间的关键区别在于equals用于比较两个对象,而hashCode用于散列,以决定对象应归入...

  • 发布于 2020-10-19 00:40
  • 阅读 ( 201 )

静止的(static)和java期末考试(final in java)的区别

关键区别——java中的静态与最终版本 每种编程语言都有特定的语法。程序员在编写程序时应该遵循这些语法。程序设计语言的关键字根据任务的不同具有特定的含义。它们由编程语言提供,不能用于用户定义的变量、方法、...

  • 发布于 2020-10-19 07:48
  • 阅读 ( 320 )

最终决赛(final finally)和用java完成(finalize in java)的区别

关键区别–java中的final vs finally vs finalize final、finally和finalize是Java编程中常用的术语。期末考试是一个关键词。它可以用于变量、方法或类。声明为final的变量只能初始化一次。他们不能改变。由于Java是一种支持面向对象编...

  • 发布于 2020-10-19 15:24
  • 阅读 ( 244 )

多态性(polymorphism)和oop中的继承(inheritance in oop)的区别

...多种行为。多态性可分为两类。它们正在过载和覆盖。 超载 参考下面用Java编写的程序。 图01:过载 根据上述程序,创建一个类型为A的对象。打电话时目标金额();它将给出与sum()方法相关的输出。当呼叫目标金额(2,3)...

  • 发布于 2020-10-19 21:16
  • 阅读 ( 555 )

超载(overloading)和覆盖(overriding)的区别

过载与覆盖 重载和重写都是大多数编程语言的特性。重载是一种特性,它允许在同一个类中创建几个具有相同名称的方法,但在函数的输入类型和输出类型方面彼此不同。方法重载通常与在函数调用中强制类型检查的静态编程...

  • 发布于 2021-06-23 10:08
  • 阅读 ( 181 )

抽象类(abstract class)和java接口(interface in java)的区别

...法。好吧,因为Java8,接口也有方法实现,它们可以有Java中的静态和默认方法。让我们详细研究一下两者的区别。 什么是java中的抽象类(an abstract class in java)? Java中的抽象类是一个声明为抽象的类——它可能包含也可能不包含...

  • 发布于 2021-06-25 03:52
  • 阅读 ( 307 )

应用程序编程接口(api)和java框架(framework in java)的区别

...构建安全高效的应用程序。 覆盖的关键领域 1.什么是Java中的API–定义,功能2.什么是Java中的框架–定义,功能3.API和Java中的框架的区别–主要区别的比较 关键术语 API、框架、Java 什么是java中的api(api in java)? API代表应用程序...

  • 发布于 2021-07-01 01:02
  • 阅读 ( 549 )

文本框(textfield)和java中的textarea(textarea in java)的区别

... 关键术语 API、AWT、GUI、Java、textfield、TextArea 什么是java中的textfield(textfield in java)? TextField是AWT中允许输入单行文本的组件。因此,我们可以使用它来创建TextField对象或组件。请参阅下面的示例程序。 Figure 1: Java program with TextFi...

  • 发布于 2021-07-01 04:06
  • 阅读 ( 299 )

字节流(byte stream)和java中的字符流(character stream in java)的区别

...法是使用字节流和字符流。 覆盖的关键领域 1.什么是Java中的字节流–定义,功能2.什么是Java中的字符流–定义,功能3.Java中字节流和字符流的区别是什么–关键区别的比较 关键术语 字节流、字符流、Java 什么是java中的字节流(...

  • 发布于 2021-07-01 09:22
  • 阅读 ( 722 )
lhxdltl
lhxdltl

0 篇文章

相关推荐