导航:首页 > 研究方法 > 方法的重载是什么

方法的重载是什么

发布时间:2022-06-26 02:48:31

Ⅰ 方法的重载

在讲述方法重载的概念之前,我们先来看一下Console.WriteLine()方法.如果在控制台输出一个整数的值,代码如下:
int i;
Console.WriteLine(i)
如果输出一个字符串,代码如下:
string s=”hello world”;
Console.WriteLine(s);
看到上面年的代码我们会不会有疑问? WriteLine()方法的参数到底是什么?如果他是int 型,那编译第二个例子就会出错?
但实际上编译不会出错,运行后也能得到预期的效果,为什么呢?
答案是Consle类存在不同的WriteLine()方法,他们名称相同但是参数不同.
下面我们例举一些WriteLine()方法:

像Consle这样有多个同名的方法的现象称为方法重载.
方法重载的定义是:
可以在一个类中定义多个同名的方法,这些方法通过不同的参数类型或者参数的个数来区分.
注意:不能仅仅通过返回值类型的不同来定义多个方法.例如下面的代码在编译时将会出错.
class Myclass
{
public int add(int x,int y)
{
int i=x+y;
return i;
}
public static string add(int x,int y)
{
int i=x+y;
return i.ToString();
}
}
下面的例子定义了IsEqual()方法的两个重载,分别用来判断整数和两个字符串是否相等.
using System;

namespace ConsoleApplication3
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
bool b1 = MyClass.IsEqual(3, 5);
bool b2 = MyClass.IsEqual("abc", "ABC");
Console.WriteLine(b1);
Console.WriteLine(b2);
Console.ReadLine();
}
}

class MyClass
{
public static bool IsEqual(int x, int y)
{
if (x == y)
{
return true;
}
else
{
return false;
}
}

public static bool IsEqual(string s1, string s2)
{
if (s1 == s2)
{
return true;
}
else
{
return false;
}
}
}
}
一个方法可以有多少个重载是没有限制的,就好象他们是碰巧同名的不同方法而已.
例如:
MessageBox类调用静态方法Show(),该方法有多个重载,一个较常用的重载格式为:

public static DialogResult Show(
string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);
该重载用于显示具有制定文本,标题,按钮,图标的消息框。其中text是指要显示的文本,caption是指要在消息框的标题栏中显示的文本,buttons是MessageBoxButtons的枚举值之一,表1;可指定在消息框中显示哪些按钮,icon是MessageBoxIcon 的枚举值之一。表2

成员名称 说明

AbortRetryIgnore 消息框包含“中止”、“重试”和“忽略”按钮。

OK 消息框包含“确定”按钮。

OKCancel 消息框包含“确定”和“取消”按钮。

RetryCancel 消息框包含“重试”和“取消”按钮。

YesNo 消息框包含“是”和“否”按钮。

YesNoCancel 消息框包含“是”、“否”和“取消”按钮。

例如private void button1_Click(object sender, System.EventArgs e) {
string str;
if(textBox1.Text == "") {
MessageBox.Show("You must enter a name.", "Name Entry Error",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else {
// Code to act on the data entered would go here.
str=textBox1.Text;
}
}

表2
成员名称 说明

Asterisk 该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的。
Error 该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。

Exclamation 该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的。

Hand 该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
Information 该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的。

None 消息框未包含符号。

Question 该消息框包含一个符号,该符号是由一个圆圈和其中的一个问号组成的。
Stop 该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
Warning 该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的。

再比如:
MessageBox.Show(“是否重新输入数据?”,”我的消息框”, MessageBoxButtons.OKCancel, MessageBoxIcon. Question);
当关闭消息框时,知道用户单击哪个那牛非常重要。例如:如果用户单击了确定按钮,则执行某种操作;如果单击了取消按钮,则不执行任何操作。可以通过Show()方法的返回值来判断用户多做的选择,Show()方法的返回值是DialogResult值之一。
DialogResult枚举值:
值 Cancel :对话框的返回值Cancel (由标签为取消的按钮发送)
值 OK:对话框的返回值是OK(通常由标签为“确定”的按钮发送)
值 Yes:对话框的返回值是Yes(通常由标签为“是”的按钮发送)
值 No:对话框的返回值是No(通常由标签为“否”的按钮发送)
例子:
在关闭应用程序的时候,系统会弹出对话框来提示用户是否要退出应用程序,单击是就退出,单击否,则不会退出,模拟一下。
Code\7\Example1.

Ⅱ java方法重载是指一个类中的,方法重写是不同类中的,对吗

什么是方法的重载:
java中,可以在同一个类中用相同的名称定义两个或者多个方法,但是参数项不同(分为参数类型不同和参数数量不同)。当两个方法名称相同而参数项不同时,那么就认为此方法被重载,而此过程就被称为"方法重载"。调用重载方法时,java使用参数的类型和数量决定实际调用重载方法的哪个版本。重载方法可以具有不同的返回类型,但返回类型本身不足以区分方法的两个版本。因此重载方法的参数类型或者数量必须不同.
方法重载支持多态性,因为它是java实现"一个接口,多重方法"模式的一种方式。此外,构造方法也可以被重载。
什么是方法重写:
在类体系结构中,当子类中的方法与其父类中的方法具有相同的方法时,则认为子类中的方法重写了父类中的方法。从子类中调用重写方法时,将总是调用出现在子类中的方法,而父类中的方法将会被隐藏。如果程序员需要访问重写方法的父类中的该方法,可以使用关键字super来完成。
方法重写以后父类的方法并没有小时,只是隐藏了而已,仍然是可以调用的。

Ⅲ 什么是重载方法,什么是覆盖方法,主要区别

一、重载方法:方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。

方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。

调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法

二、覆盖方法:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

两者的区别:

1、子类与父类的关系不同:覆盖方法中的子类与父类之间是垂直关系;在重载方法中因为两个方法在同一个类中,所以是不同方法之间的水平关系。

2、映射关系不同:覆盖只能由一个方法,或只能由一对方法产生关系;在重载方法时,多个方法之间发生变化。

3、对于参数列表的需求不同:覆盖要求参数列表相同;重载要求参数列表不同。

(3)方法的重载是什么扩展阅读:

java的特点:

1、高性能

Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU的机器代码,也就是实现全编译了。

Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。

2、多线索性

Java是多线索语言,它提供支持多线索的执行,能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。

Java的线索支持也包括一组同步原语。这些原语是基于监督程序和条件变量风范,由C.A.R.Haore开发的广泛使用的同步化方案。用关键词synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在一个一致的状态。

3、动态性

Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。

参考资料来源:

网络-方法重载

网络-方法覆盖

Ⅳ 方法重载和重写的区别

Overload是重载的意思,表示在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可,Override是覆盖的意思,也就是重写,它与返回值类型无关,只看参数列表,两者不同主要体现在:目的不同、范围不同、参数不同、多态性不同、返回类型不同。

1、目的不同

overload用于增加程序的可读性(做法不同,但是做的同一事情)。 override用于提供其超级类已经提供的方法的特定实现。

2、范围不同

overload 在相同的类范围内内执行。 override发生在两类具有继承(继承)的关系。

3、参数不同

overload参数必须不同。 override参数必须相同。

4、多态性不同

overload 静态多态,调用的函数在编译时被选中。 override 是运行时多态性的。

5、返回类型不同

overload中可以相同或不同。但你必须改变参数。 override必须是相同的或协变的。

Ⅳ 在C#,什么叫做方法重载,怎样实现方法重载,

重载是指方法名称相同,
只是参数个数或类型不同.
方法功能是相同的.
除了重载,
还要了解以下几个关键字的用法,与区别:
virtual
定义为虚方法
override
对虚方法实现,具有多态性
new
把基类中的同名方法替换掉,
不具有多态性
//举个例子
//不使用方法重载
public
string
GetString(string
strValues)
{
if(strValues.Length==0)
{
return
"今天我遇到无名了。。。。";
}
return
"Hello,"+strValues+"兄";
}
//使用重载就是
public
string
GetString()
{
return
GetString("我是无名。。。你是?");
}
public
string
GetString(string
strValues)
{
return
strValues;
}

Ⅵ 简述什么是方法重载方法重载必须具备什么样的条件

方法重载就是在一个类里面有方法的名字是一样的,但是方法的参数不同,可以是参数类型不同也可以是参数的个数不同。给你举个例子吧
class Area
{
float getArea(float r){
return 3.14*f*r;
}
double getArea(float x,int y){
return x*y;
}
float getArea(int x,float y){
return x*y;
}
double getArea(float x,float y,float z){
return (x*x+y*y+z*z)*2.0;
}
//还可以有其他的变量和方法什么的……我就不多写了……
}
注:方法的返回类型和参数的名字不参与比较,也就是说如果两个方法的名字相同,即使类型不同,也必须保证参数不同。
方法重载的好处就在于当你调用方法的时候可以通过你传入的参数的类型自动匹配方法,也就是为了突出面向对象的特点。
不晓得你明白了否……

Ⅶ 什么是方法重载

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。

Ⅷ java方法重载是什么意思

首先给LZ一个例子先吧
class ChongZai{
public void a(int a);
public void a(Strting a);
public void a(int a,int b);
}
如上就是一个重载了 而重载要满足一下条件:
1.必须是同一个类
2.方法名(也可以叫函数)一样
3.参数类型不一样或参数数量不一样

同时我也给LZ讲一下重载的作用吧 还是以上面的例子说吧
ChongZai cz =new ChongZai();
cz.a(1); //调用a(int a);
cz.a("传的参数"); //调用a(String a)
cz.a(1,2); //调用a(int a,int b)

上面已经说了调用哪个方法了 而这个调用方法是程序按照你输入的参数来判断调用哪个方法的

重载的功能也讲下吧 就比如说你做游戏 那么可能游戏可以有多个人完 而完的人数又不确定是几个人 那么就可以用到重载了

比如说最多3个人完 那么你可以定义3个参数
public void a(String a);
public void a(String a,String b);
public void a(String a,String b,String c);
两个人那么你就调用2个参数的方法 3个人你就调用3个参数的方法 而如何调用上面已经说明了 打字辛苦 谢谢采纳!!!

阅读全文

与方法的重载是什么相关的资料

热点内容
辣椒碱检测方法 浏览:38
乌药种植方法 浏览:175
平常如何侧方入库最笨方法 浏览:488
踝骨软化锻炼方法 浏览:421
如何活到极致的方法 浏览:599
平面图钢筋计算方法 浏览:674
用什么方法给小孩做棉裤 浏览:597
鲢鱼怎么做才好吃简单的方法火锅 浏览:638
和田籽料二上色的鉴别方法 浏览:715
圣荷纳米霜使用方法 浏览:168
货车多利卡打不着火解决方法 浏览:395
韩束紧致水分面膜使用方法 浏览:113
摩托车前叉连接方法 浏览:428
交流和直接的电流计算方法 浏览:465
龟田锻炼身体的方法 浏览:767
曾仕强怎么使自己开悟的方法 浏览:253
大拇指甲沟炎治疗方法 浏览:911
高中数学解题方法技巧汇总 浏览:331
u盘扩展内存方法手机 浏览:37
除螨包的最佳方法 浏览:24