关键区别——java中重载与重写
面向对象编程(OOP)是软件开发中的一个主要范式。它是一种使用类和对象设计程序的方法。班级就是蓝图。它描述了对象中应该包含的内容。或者应该定义对象的属性。因此,对象是类的实例。这些对象与其他对象通信。OOP的一个主要概念是多态性。它是一个对象以多种方式表现的能力。多态性分为重载和重写两部分。本文将在Java中讨论这两者之间的区别。Java中重载和重写之间的关键区别在于,重载是使用不同的实现创建多个同名方法的能力,重写是为超类中已经存在的子类方法提供一个实现。
目录
1. 概述和主要区别
2. Java中的重载是什么
3. Java中的重写是什么
4. Java中重载和重写的相似性
5. 并排比较——以表格形式在Java中重载与重写
6. 摘要
什么是java中的重载(overloading in java)?
重载是使用不同的实现创建同名的多个方法的能力。请参阅下面的Java代码。
根据上面的程序,类A包含两个同名的方法。第一和法有两个参数。第二和法有三个参数。当创建类型A的对象并调用sum(2,3)时,它将使用两个参数sum(inta,intb)调用sum方法并返回5。当创建一个类型为A的对象并调用sum(2,3,4)时,它将使用三个参数调用另一个sum方法,即sum(inta,intb,intc)并返回9。
方法名称相同,但参数数目不同。可以观察到同一物体的行为不同。这个概念被称为重载。它也被称为静态绑定或编译时间多态性。
也可以使用不同的数据类型重载。请参阅下面的Java代码。
根据上面的程序,类由两个同名的方法组成。sum(inta,intb)方法接收两个整数值。sum(double a double b)接收两个double值。当创建类型A的对象并调用sum(2,3)时,它将调用sum(inta,intb)并返回值5。当调用sum(3.4,5.6)时,它将调用sum(double a double b)并返回值9.0。在本例中,方法具有相同的名称,但变量类型不同。这也是超载。
什么是在java中重写(overriding in java)?
在Java中,可以使用已经存在的类构建子类。与其从头创建新类,还可以使用已经存在的类的属性和方法。现有类是超类,派生类是子类。当子类为已经在超类中的方法提供实现时,它被称为重写。请参阅以下Java程序。
根据上面的程序,类A有一个display()方法。类B是从类A扩展而来的,因此类B可以访问类A的属性和方法。类B具有具有特定实现的方法display()。当创建类型为A的对象并调用display方法时,它将给出输出B。即使类A有display方法,它也会被类B display方法重写。子类正在实现超类中已存在的方法。
这个概念是一种多态性,称为覆盖。它也被称为后期绑定、动态绑定、运行时多态性。
超载(overloading)和在java中重写(overriding in java)的共同点
- 两者都是多态性的类型。
- 在重载和重写中,方法具有相同的名称。
超载(overloading)和在java中重写(overriding in java)的区别
Java中的重载vs | |
Java中的重载是指使用不同的实现创建同名的多个方法的能力。 | Java中的重写是为超类中已经存在的方法提供子类方法中的特定实现。 |
参数 | |
在重载中,方法具有相同的名称,但参数数目不同或参数类型不同。 | 在重写中,方法具有相同的名称,并且参数必须相同。 |
主题 | |
类中发生重载。 | 重写发生在具有继承关系的两个类中。 |
同义词 | |
重载称为编译时间多态性。 | 重写称为运行时多态性。 |
总结 - 超载(overloading) vs. 在java中重写(overriding in java)
多态性是面向对象编程中的一个主要概念。它提供了一个对象以多种方式表现的能力。这可以是重载或重写。重载是编译时多态性,重写是运行时多态性。它们在软件应用程序开发中很有用。重写和重载之间的区别在于,重载是创建具有不同实现的同名多个方法的能力,重写是为超类中已经存在的方法在子类方法中提供特定的实现。可以在Java中实现重载和重写。
下载pdf重载vs java重写
你可以下载这篇文章的PDF版本,并按照引文说明离线使用。请在此下载PDF版本Java中重载和重写的区别