重写重载,重构,加载,覆盖的区别

用大白话讲,不要用难以弄懂的翻译过来的话讲,有分加。先给5分==============================================

用大白话讲一讲,代码的加载顺序,实例变量,实例方法,静态变量,静态方法,静态代码块,方法的调用顺序,等等等等。============================
加载,编译,运行的关系,是什么

楼主的问题问得很好,但是我们每一个问题都是想要一个结果的,这个问题涉及java基础方面的,重载/重写(其实就是覆盖)针对的对象都是方法,所以我们具体的来说是方法重载和方法覆盖是怎么一回事,重构。。就像楼上说的那样,是针对代码,写得不好自然要重新来写,而对于初学者来说理解方法重载和方法覆盖是一个很重要的课题。

这之前需要楼主先明白什么是方法,方法其实就是函数(java中的称呼不一样而已),顾名思义就是完成一个动作或者功能的代码体(用{}包起来),一个方法必须具备返回类型/方法名/参数这三个基本元素,当然也有例外(比如构造方法是没有返回类型的)。

重载是为了让程序能够具备更好地灵活性而设计的,使用它可以节省很多时间,让代码更加简洁。
下面这个例子很好地说明了这点,楼主可以看下:

public class Circle {
private int x,y,r;
private double pi=3.1415;
public Circle(int x,int y) {
this.x=x;
this.y=y;
r=1;
this.prt();
}
public Circle(int x,int y,int r) {
this.x=x;
this.y=y;
this.r=r;
this.prt();
}
public void prt() {
System.out.println("x="+x+",y="+y+",r="+r);
}

public static void main(String[] args) {
Circle c1=new Circle(10,10);
Circle c2=new Circle(20,20,10);
}
}

Circle这个类保存一个圆,它拥有圆心坐标x y,半径长度r,如果在建立的时候不输入r,那么就默认半径r=1,方法重载要求方法名相同,返回类型相同,但是参数的类型或者个数不同,或者参数的顺序不同,在这里我们Circle构造方法的参数个数就不同,所以重载就发生了。

而覆盖是发生在不同类中的事情,通常是子类重写父类的方法,这个在接口中被普遍采用,因为实现接口以后必须重写某些方法,否则程序无法正确编译。

下面这个程序能很好的帮助你来理解覆盖:

class PrintFather {
int i=1;
public void prt() {
System.out.println("i="+i);
}
}

public class PrintOverriden extends PrintFather {
String name="PrintOverriden";
public void prt() {
System.out.println("Name="+name);
System.out.println("i="+i);
}
public static void main(String[] args) {
PrintOverriden p=new PrintOverriden();
p.prt();
}
}

父类里的prt()方法只打印int i,然后子类需要打印出String name,所以子类重写了prt()这个方法。

至于加载的意思,其实就是让编译器执行某段程序,可以是类可以是包可以是任何编译器能够编译的代码。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-02-23
重载:overload, 就是一个类里几个方法名字相同,但是参数类型或是个数不一样

重写和覆盖是一回事。英文叫override。就是说本来子类直接继承父类的方法就可以了。可是如果覆盖了,则子类自己定义了这个方法,不用父类的。

重构:refactoring,就是代码写的太烂,把它改好。

加载?没听过。有其他翻译或说法吗?或者把上下文列出来。

注:每个人翻译的都不一样,最好把英文一起记下才是正道。
第2个回答  2008-02-25
重载是同名方法可以接收不同类型、个数或者返回不同类型的值,方法的重载在一个类中实现

方法重写是要有继承关系的,子类继承了父类的方法,但是这个方法可以与父类的同名方法完全不一样

总的来说,区别就是一个不存在继承关系,一个存在继承关系
第3个回答  2008-02-23
Overloading就是:
void markanswer(String answer){
}
void markanswer(int answer){
}
Overriding就是:子类重新实现父累的函数
其他的名词不知道了
这不是翻译的,已经很简练很容易懂了,难道你让我解释什么是子类,函数,实现和父类吗?

覆盖(重写),重构,重载的区别和这到底是否重载
重构是一个软件维护的通用技巧, 重构的具体做法, 可以通过重写或者重载等, 但不限于此, 更改注释, 更改函数名类名等,都可以称之为重构,重构的目的是为了让软件容易维护, 修改其Bug等.2.覆盖(重写), 即override(Overwrite), 表达的都是一个含义,《Thinking in java》中用的是Override,翻译为覆盖,...

重写重载,重构,加载,覆盖的区别
而覆盖是发生在不同类中的事情,通常是子类重写父类的方法,这个在接口中被普遍采用,因为实现接口以后必须重写某些方法,否则程序无法正确编译。下面这个程序能很好的帮助你来理解覆盖:class PrintFather { int i=1;public void prt() { System.out.println("i="+i);} } public class PrintOverrid...

方法重载和重写的区别
1、目的不同 overload用于增加程序的可读性(做法不同,但是做的同一事情)。 override用于提供其超级类已经提供的方法的特定实现。2、范围不同 overload 在相同的类范围内内执行。 override发生在两类具有继承(继承)的关系。3、参数不同 overload参数必须不同。 override参数必须相同。4、多态性不...

Java中的重载与重写有什么区别?(请举两个简单的例子)
首先讲讲:重载(Overloading)(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数\/类型。重载Overloading是一个类中多态性的一种表现。(2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。...

求文档: java 中的重构,重载,重写的区别
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它...

重载和覆写有什么区别?
其实很本质的区别就是看函数特征:覆写(Override)的两个函数的函数特征相同,重载(Overload)的两个函数的函数名虽然相同,但函数特征不同。函数特征包括函数名,参数的类型和个数。Override 是在继承的时候,如果你写的函数与要继承的函数函数特征相同,那么,加上这个关键字,在使用这个子类的这个函数...

简述override和overload的区别
overload(通常被翻译为过载或重载) 一般语境里overload是对method(方法)而言的,可以指一个类中多个名字相同而参数类型列表不相同的方法,这个名字代表的方法就是被overload了的。编译器会根据参数类型列表的不同来决定调用叫这个名字的很多方法中具体的哪一个。 >>override(通常被翻译为覆盖)...

在C++中怎么搞清楚函数重载,函数重构以及运算符重载这些概念呢??我现 ...
3.字符串的相加,实现两个字符串的拼接。 char * add(char *,char *)所以同样的函数,可以实现不同的功能。这就是函数重载。重载的区分是按照参数个数,参数类型。运算符重载就和函数重载一样,只不过上面是一个函数对应不同的功能,这里是一个符号对应不同的功能(根据参数不同)。希望我...

想学习JAVA,不知道从哪入手。
2. 就业保障完善 实现1+1>2效果的关键在于能够为你提供良好的发展平台,即能够为你提供良好的就业保障,让学员能够学到实在实在的知识,并向java学员提供一对一的就业指导,确保学员找到自己的心理工作。3. 学费性价比高 一个好的Java培训机构肯定能给你带来1+1>2的效果,如果你在一个由专业的Java...

重载与多态的联系和区别是什么?
其实是重载与重构表现了多态性

相似回答