所以我有一个名为COL的类包含以下函数:
public class CatalogueOfLife extends EDITPlatform {
private static final String nomatchfound = "there is nothing";
protected String getNoResultsMessage(){
return COL.nomatchfound;
}
然后是一个名为 interface 的接口,它具有以下功能:
public interface WSInterface {
public boolean matchfound(String noMatchString);
}
最后一个名为 platform 的抽象类,它使用以下两个函数:
public abstract class EDITPlatform implements WSInterface{
public boolean matchfound(String noMatchString){
if (noMatchString.contains(getNoResultMessage())){
return true;
}
return false; }
现在我想从main函数调用matchfound
函数。我只能使用 COL 对象,但问题是我需要的不仅仅是一个类来扩展平台。
答案 0 :(得分:0)
已更新:您的问题是EDITPlatform
没有getNoResultMessage()
方法。所以你不能称之为。
如果您需要在CatalogueOfLife
中定义该方法,那么您应该使用抽象方法:
public abstract class EDITPlatform implements WSInterface{
protected abstract String getNoResultMessage();
public boolean matchfound(String noMatchString){
if (noMatchString.contains(getNoResultMessage())){
return true;
}
return false;
}
}
然后在实体类
中覆盖它public class CatalogueOfLife extends EDITPlatform {
private static final String nomatchfound = "there is nothing";
@Override
protected String getNoResultsMessage(){
return CatalogueOfLife.nomatchfound;
}
}
最后
CatalogueOfLife col = new CatalogueOfLife();
boolean matched = col.matchFound(myString);
答案 1 :(得分:0)
如果COL是Platform的子类,那么在代码中
if (noMatchString.contains(getNoResultsMessage()))
平台无法访问 getNoResultsMessage()
。
由于您已在Platform
中实施了界面的所有方法,因此无需abstract
这就是你要找的东西:
class CatalogueOfLife // extends EDITPlatform
{
private static final String nomatchfound = "there is nothing";
protected String getNoResultsMessage() {
return CatalogueOfLife.nomatchfound;
}
}
interface WSInterface {
public boolean matchfound(String noMatchString);
}
class EDITPlatform extends CatalogueOfLife implements WSInterface {
public boolean matchfound(String noMatchString) {
if (noMatchString.contains(getNoResultsMessage()))
return true;
return false;
}
}
public class MainClass {
public static void main(String[] args) {
EDITPlatform plat = new EDITPlatform();
System.out.println(plat.getNoResultsMessage());
System.out.println(plat.matchfound("there is nothing"));
}
}