方法的重载与重写有什么区别?

Java中函数重载与函数重写

方法重载(overloading method) 。方法重载是让类以统一的方式处理不同类型数据的一种手段。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不 同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法, 这就是多态性。下面是一个方法重载的例子:

Java代码

class MethodOverloading {

void receive(int i) {

System.out.println("Received one int data");

System.out.println("i=" + i); }

void receive(float f) {

System.out.println("Received one float data");

System.out.println("f=" + f); }

void receive(String s) {

System.out.println("Received a String");

System.out.println("s=" + s);

}

}

注意,Java的方法重载要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。

方法重写(overiding method)

在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采 用方法的重写。方法重写又称方法覆盖。若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有 的方法,可使用super关键字,该关键字引用了当前类的父类 由此可见: 重载重写都需要方法名相同; 重载要求参数列表不同; 重写要求参数列表、返回值都相同(只存在子类中)。 在一个类中,只有重载, 这样的东西 Java代码 public class One { public void A(){} public int A(){ return 1; } } 是无法通过编译的。对于重载而言,并不在乎返回类型。 但是,重载未必在一个类中,子类重载也是可以的。

Java代码

public class One {

public void A(){

}

}

class ChildOne extends One{

//public int A(){

}

//不伦不类在哪里都不行

public int A(int a){

//重载父类方法 return 1;

}

}

1.重写发生在父子类上,重载是在同一个类中。

2.重写的函数参数类型及个数一定一样,但是重载必须不一样

时间: 2024-11-07 21:43:03

方法的重载与重写有什么区别?的相关文章

【面试题】方法的重载与重写的区别?

方法的重写(override orverwrite) vs 重载(overload) [面试题]方法的重载与重写的区别? 重载:"两同一不同":同一个类,同一个方法名,不同的参数列表. 注:方法的重载与方法的返回值无关! >构造器是可以重载的 重写:(前提:在继承的基础之上,子类在获取了父类的结构以后,可以对父类中同名的方法进行"重构") 方法的返回值,方法名,形参列表形同:权限修饰符不小于父类的同名方法:子类方法的异常类型不大于父类的: 两个方法要同为sta

java中方法的重载与重写的区别

JAVA中方法的重载与重写 1)  方法的的参数上看:重载后的方法与源方法在参数的类型以参数列表的顺序上会发生改变,而重写后的方法在参数的数据类型与参数列表的顺序不会发生改变 2)原方法是否对被覆盖:重载后的方法不会覆盖原方法,而重写后的方法会覆盖父类中的方法,调用时也只会调用重写后的方法. 3)调用方法的对象上:重载后的方法被调用时,调用对象不同时,调用的方法不同,产生的结果也不同:而重写后的方法被调用时,无论调用的对象是父类或者子类的对象,调用的方法相同,产生的结果也一样

Java中的方法及方法的重载与重写

方法 定义:定义在类中的具有特定功能的独立的小程序: 方法的好处: 1.提高了代价的复用性: 2.可以简化书写: 格式: 访问修饰符 修饰符 返回值类型 方法名(参数类型 参数名称,……){ 功能代码: return 返回值: } 定义方法的时候有两个需要明确: 1.方法的返回值类型,如果方法不需要有返回值,那么返回值的类型为void: 2.需要明确参数: 注意: 1.方法以运行return语句作为结束.如果方法没有返回值,return语句可以省略不写: 2.方法中不可以再定义方法: 方法的重载

方法的重载与重写区别

重写和重载的区别 (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同.无法以返回型别作为重载函

方法的重载和重写

方法的重载: 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同.无法以返回型别作为重载函数的区分标准. 方法的重写:

方法的重载与重写

重载的定义:在一个类中,有多个同名的方法,而这些方法的形式参数不同(具体指个数,类型或顺序不同). 重载的好处:减轻了程序员记忆的负担,提高了编程的效率. 重载的一个体现就是构造器的重载. 重写的定义:在子类中,对继承自父类的某一个或多个方法,由于它们不适合当前业务的需要,从而对它们进行修改,以适应当前业务的需要.这种 现象称之为重写.

面向对象5(方法的重载、重写、继承)

class Person{ private String name; private String location; Person(String name) { this.name = name;   location = "BeiJing"; } //方法的重载 Person (String name ,String location){ this.name = name;   this.location = location; } public String info(){ re

详细讲解Java中方法的重载和重写

首先讲讲方法的重载: Java的重载就是在类中可以创建多个方法,它们具有相同的名字,但是却有不同的参数. 判断是否重载只有两个条件: 1)相同的方法名 2)不同的参数 具体为: A.方法参数类型不同 B.方法参数个数不同 C.方法参数排列顺序不同 代码如下: package com.tocean.test;//包名 public class Test1 { public void name(int i){ System.out.println("overloading"); } //方

Java方法的重载和重写

重载与重写对比:  重载: 权限修饰符(public private 默认):无关 方法名:重载的两个方法的方法名必须相同 形参的个数不同 形参的类型不同 三者至少满足一个 返回值类型: 重载与返回值类型无关 重写: 权限修饰符(public private 默认): 子类方法的权限>=父类的方法的权限 方法名: 子类方法和父类方法必须相同 形参列表: 子类方法和父类方法的形参列表必须相同 返回值类型: 基本类数据类型: 必须相同 引用数据类型: 子类方法的返回值类型和父类方法的返回值类型相同