Methods 我需要为toString和equals创建一个抽象方法吗?
所以我的程序正在创建四边形,我被告知要为findArea()和findPerimeter()创建抽象方法,但是我需要它们来创建toString()和boolean 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
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;
}