переопределение методов класса: включая метод суперкласса в методе подкласса JAVA - PullRequest
0 голосов
/ 19 ноября 2011

Итак, у меня есть эти классы, один мой суперкласс, другой мой подкласс. У меня проблемы с вызовом моего метода подкласса в моем методе суперкласса, поэтому я могу получить и эти результаты. методы перегружены, и у меня возникли проблемы с пониманием этого. Я думаю, что если я смогу получить это, это поможет мне понять, как эти два взаимосвязаны и работают. У меня проблемы с конструктором копирования, методом 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 голосов
/ 19 ноября 2011

изменить номер строки 29 в классе Convertible на super(obj);

и 43 на if (super.equals(obj) && this.typeTop.equals(obj.typeTop)) {

...