重写类方法:包括子类方法JAVA中的超类方法

时间:2011-11-19 06:02:02

标签: subclass override superclass

所以我有这些类,一个是我的超类,另一个是我的子类。我在我的超类方法中调用我的子类方法时遇到问题,所以我也可以得到这些结果。方法正在超载,我遇到了解问题。我想如果我能得到这个,它将帮助我理解两者如何相互联系和工作。 我的复制构造函数,toString方法和我的子类中的equals方法

有问题

超类:

public class Car
{
        private String make;
    private String model;
        private int miles;
  //    The default constructor—use this
        public Car()
        {
                this.make=null;
            this.model=null;
        this.miles=0;
        }
//  The 3-parameter constructor –use this
        public Car(String make,String model,int miles)
        {
            this.make=make;
            this.model=model;
            this.miles=miles;
        }
//  The copy constructor—use this
        public Car(Car obj)
        {
            this.make=obj.make;
            this.model=obj.model;
            this.miles=obj.miles;
        }
 // The toString method—use this
        public String toString()
        {
            String str;
                    str = "The car Brand: "+ this.make +" Mobel: "+this.model+" miles on the car: "+this.miles;
            return str;
        }
//  The equals method—use this
    public boolean equals(Car obj)
    {
        if      (this.make.equals(obj.make)&&this.model.equals(obj.model)&&this.miles==obj.miles)
            return true;
        else
            return false;
    }   

 }

 //My subclass method

public class Convertible extends Car
  {
        private String typeTop;
 // The default constructor—use this
        public Convertible()
        {
            super();
            this.typeTop= null;
        }
//  The 4-parameter constructor—use this
        public Convertible(String make, String model,int miles,String typeTop)
        {
            super(make,model,miles);
        this.typeTop=typeTop;
        }
 // The copy constructor—use this
        public Convertible(Convertible obj)
        {
            super(Convertible obj);
        this.typeTop=obj.typeTop;
        }
 // The toString method—use this
        public String toString()
        {
            String str;
            str =super.toString()+this.typeTop;
            return str;
        }
 // The equals method—use this
    public boolean equals(Convertible obj)
    {
        if(super.equals(super.obj)&&this.typeTop.equals(obj.typeTop))
            return true;
        else
            return false;
    }


 }

1 个答案:

答案 0 :(得分:0)

将可兑换课程中的第29行更改为super(obj);

和43到if (super.equals(obj) && this.typeTop.equals(obj.typeTop)) {