java中重写和重构二者的定义和区别?

如题所述

我晕,楼上,重构可不是“重载构造函数”的简写。软件重构和重写压根不是一个层次上的东西!软件重构是说程序员为了对 已有程序 在尽量不改变接口的前提下 进行如下处理 而做的 重新编写代码的工作1、去除bug2、提高效率3、增加新的功能等等。而方法重写只是大多数面向对象语言提供的一种机制,目的主要是帮助实现“多态”。许多时候java代码的重构确实利用了java的方法重写机制,但是你要理解它们根本不是同一层次上的东西。 重构:站在软件整体设计思想的高度,改变软件内部结构达到提高效率,增加功能,去除bug等工作。方法重写:仅仅是java的一种语言机制,它和继承,超类可以引用子类等机制一同实现“多态”。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-20

重写:当一个子类继承一父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。

例如:

public class A{//定义类A
  public void s(){//定义方法s
  }
}
public class B extends A{//定义子类B,继承A
  public void s(){//重写父类A的方法s
  }
}

重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性,系统发展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的结构进行重新的整理。通过重构,不断的调整系统的结构,使系统对于需求的变更始终具有较强的适应能力。

第2个回答  2013-04-15
重写(其实就是覆盖)针对的对象都是方法,所以我们具体的来说是方法重载和方法覆盖是怎么一回事,重构。。就像楼上说的那样,是针对代码,写得不好自然要重新来写,而对于初学者来说理解方法重载和方法覆盖是一个很重要的课题。
第3个回答  2013-04-15
heh e重写 : 一般是 用来继承的子类 里 写了与父类 同名方法 这就是重写重构: 指同一个类有 多个同名构造函数 ,但他们返回类型 或 参数 不完全相同 慢慢体会吧 ,yun连个加分都没有!
第4个回答  2013-04-17
重写:override,又叫方法重写或者方法覆盖, 指发生在有父子关系的子类中, 要求访问控制权限修饰符(public protected default private)不能更加严格, 方法签名(返回类型,方法名,参数列表的个数顺序类型)必须相同, 抛出的异常不能更加广泛.例如:
父类中: public void doQuery(String str, Map map) throws Exception;
那么子类中: public void doQuery(String str, Map map) throws SQLException{}
public为最高权限,所以子类只能为public. 如果父类为private,那么子类中可以为任何修饰符.
void doQuery(String str, Map map)必须完全一样.
throws Exception 父类抛出所有异常, 子类中可以抛出Exception和Exception的子类异常.
如果父类抛出IOException, 那么子类只能抛出IOException和IOException的子类异常.

重构:overload, 又叫方法重载或者方法过载, 指发生在本类当中的, 方法名称相同但是参数列表不同的方法(参数列表包括个数顺序类型). 例如:
类中:public void doQuery(String str);
public String doQuery(Map map);
public void doQuery(String str, Map map);
一个类中以上三种方法都属于重构.
相似回答