这个应该是构造方法的重构
public class SeqList<E> implements LList<E> {
private Object[] table; private int n; public SeqList(int capacity) {
this.table = new Object[Math.abs(capacity)];
this.n = 0;
} public SeqList() {
this(20);
}
这个重构不是要在继承于父类方法的子类将子类的方法重写
这个为什么不要呀 感念混淆了

解决方案 »

  1.   

    我没弄清楚楼主的意思!为什么要重写子类的方法呢!
    我猜你是不是 第二个构造函数你不是很明白啊?
    首先你写了两个构造函数,第二个构造函数因为this(20)的原因,又一次调用了第一个构造函数!
      

  2.   

    哦 楼上三位说的我明白点了 等于说这个叫重载对吧 那请看看下面2段代码那个是重构啊
    这个是从网上搜索来的
    public class A{
        public void print(String param){
             System.out.println("这是A类中的print方法");
             System.out.println(param);
    }
    }
    public class B extends A{
        public void print(String param){
            System.out.println(param);
            System.out.println("这是A类中的print方法");
    }
    }
    这个是我们老师说的 老师说那个me()方法就叫重构
    package ATM;
    import java.util.*;
    public class ATM {
    Person[] person=new Person[3]; /**
     * @param args
     */
    Scanner input=new Scanner(System.in);
    int current=0;
    public void data(){
    Person p1=new Person();
    p1.account=1001;
    p1.password=1111;
    p1.yourmoney=1000;
    Person p2=new Person();
    p2.account=1002;
    p2.password=1111;
    p2.yourmoney=1000;
    Person p3=new Person();
    p3.account=1003;
    p3.password=1111;
    p3.yourmoney=1000;
    person[0]=p1;
    person[1]=p2;
    person[2]=p3;
    }
    public void show(){
    System.out.println("---------------------------------\n\n");
    System.out.println("欢迎使用ATM取款机\n\n");
    System.out.print("请输入卡号:");
    int name=input.nextInt();
    System.out.print("请输入密码:");
    int pwd=input.nextInt();
    for(int i=0;i<person.length;i++)
    {
    if(person[i].account==name&&person[i].password==pwd)
    {
    current=i;
    showmain();
    //System.out.println("1111");
    break;
    }

    }
    System.out.println("程序结束");
    }
    String con="";
    public void showmain(){
    System.out.println("---------------------------------\n\n");
    System.out.println("请输入选择功能\n\n");
    System.out.println("1.查询余额");
    System.out.println("2.现金存款");
    System.out.println("3.现金提取");
    System.out.println("4.取卡退出\n\n");
    System.out.print("请选择(1-4):");
    int num=input.nextInt();
    if(num==1){
    yue();
    }else if(num==2){
    cunkuan();
    }else if(num==3){
    qukuan();
    }else if(num==4){
    System.out.println("账号存款为:"+person[current].yourmoney);
    System.out.println("取卡退出");
    show();
    }
    }
    public void me(){
    System.out.println("---------------------------------\n\n");
    System.out.print("输入0继续:");
    int aa=input.nextInt();
    if(aa==0){
    showmain();
    }
    }
    public void yue(){
    System.out.println("---------------------------------\n\n");
    System.out.println("账号:"+person[current].account);
    System.out.println("剩额:"+person[current].yourmoney+"元");
    System.out.println("---------------------------------\n\n");
    System.out.print("输入0继续:");
    int aa=input.nextInt();
    if(aa==0){
    showmain();
    }
    }
    //double a,b;
    public void cunkuan(){
    System.out.print("请输入存款金额:");
    double a=input.nextDouble();
    person[current].yourmoney+=a;
    System.out.println("---------------------------------\n\n");
    System.out.println("存款操作成功!\n");
    me();
    }
    public void qukuan(){
    System.out.print("请输入取款金额:");
    double a=input.nextDouble();
    if(a<=person[current].yourmoney){
    person[current].yourmoney=person[current].yourmoney-a;
    System.out.println("---------------------------------\n\n");
    System.out.println("取款操作成功!\n");
    me();
    }else{
    System.out.println("---------------------------------\n\n");
    System.out.println("余额不足!\n");
    me();
    }
    }
    }我的疑问就是 一个是写在2个类中的 一个是写在一个类中 到底那个才是真的重构啊
      

  3.   

    楼主..你在4楼的提问.第一个例子确认书是重载..
    然后第2个例子有点难理解..你要知道,重构是有一个过程的.并不能说某个方法就是重构.如    public void yue(){
            System.out.println("---------------------------------\n\n");
            System.out.println("账号:"+person[current].account);
            System.out.println("剩额:"+person[current].yourmoney+"元");
            System.out.println("---------------------------------\n\n");
            System.out.print("输入0继续:");
            int aa=input.nextInt();
            if(aa==0){
                showmain();
            }
        }
    因为其中这一段System.out.println("---------------------------------\n\n");
            System.out.print("输入0继续:");
            int aa=input.nextInt();
            if(aa==0){
                showmain();
            }在几个方法里面都有出现.所以将其另外封装到一个me()方法里面,然后在这几个方法里面调用me();这种行为就称为 重构.