Answer という抽象クラスがあります。仮説的には、文字列の回答、ビデオの回答、音声の回答など、さまざまな種類の回答が存在する可能性があるため、抽象化する必要があります。
public abstract class Answer {
abstract public void display();
abstract public Answer getAnswer();
abstract public boolean isEqual();
}
StringAnswer では、これらのメソッドをオーバーライドしたいと考えています。
public class StringAnswer extends Answer
{
String text;
public StringAnswer(String text)
{
this.text = text;
}
@Override
public void display()
{
System.out.println(text);
}
@Override
**public String getAnswer()
{
return text;
}**
@Override
public boolean isEqual()
{
// TODO Auto-generated method stub
return false;
}
}
getAnswer は、文字列を返そうとしているため問題を引き起こしていますが、回答が返されることを期待しています。抽象的な意味で、私は Answer を返したいです。ただし、StringAnswer の内容は明らかに String になります。
では、回答を期待しているときに文字列として返すにはどうすればよいですか?