Methods 我需要为toString和equals创建一个抽象方法吗?

Methods 我需要为toString和equals创建一个抽象方法吗?,methods,equals,abstract,tostring,Methods,Equals,Abstract,Tostring,所以我的程序正在创建四边形,我被告知要为findArea()和findPerimeter()创建抽象方法,但是我需要它们来创建toString()和boolean equals方法吗 abstract public class Quad { private int s; //Base top public Quad(){ s = 1; } Quad(int s){ this.s = s; } abstract public int findPerimeter(); abstrac

所以我的程序正在创建四边形,我被告知要为findArea()和findPerimeter()创建抽象方法,但是我需要它们来创建toString()和boolean equals方法吗

abstract public class Quad {
private int s; //Base top
public Quad(){
    s = 1;
}
Quad(int s){
    this.s = s;
}
abstract public int findPerimeter();
abstract public int findArea();
abstract public String toString();
abstract public boolean equals(Object o);
public int getS() {
    return s;
}
public void setS(int s){
    this.s = s;
}
}

}


下面是代码,感谢您的阅读和帮助

您应该知道,在Java中,所有类都继承自Object,后者同时实现toString和equals方法,因此在任何类中,您都可以重新定义这些方法的行为,而不必在父类(Quad)中声明为抽象


您可以获得这本书,以了解有关使用java进行面向对象编程的良好原则的更多信息

谢谢!答案很多!
class Square extends Quad{
private static int numSquares = 0;
private int s, iD;
public Square(){
    super();
    s = super.getS();
    numSquares ++;
    iD = numSquares;
}
public Square(int s){
    super(s);
    s = super.getS();
    numSquares ++;
    iD = numSquares;
}
public int getNumSquares(){
    return numSquares;
}
public int getID(){
    return iD;
}
public void setID(int iD){
    this.iD = iD;
}
@Override
public int findArea(){
    return (getS()*getS());
}
@Override
public int findPerimeter() {
    return (getS())*4; 
}
public String toString(){
    return "Side length is "+getS()+", Area is "+findArea()+" and Perimeter is "+findPerimeter();
}
public void decreaseNum(){
    numSquares --;
}
public boolean equals(Object s){
    if (s instanceof Square){
        Square temp = (Square)s;
        if(getID() == (temp.getID())){
            return true;
        }
    }
    return false;
}