定义一个接口
实现一个类
在接口的process方法的返回值是Object,而在实现类里的process方法的返回值是Waveform。由于是实现所以不能加Override去检测
对于继承
当把Ex1方法的返回值改成Double的时候报错。
总结如下
1、接口的实现和类的继承的Override的时候。要求方法签名相同
2、要求返回值子类或实现的返回值小于或等于父类或接口返回值的域。
第二条很拗口。。还是看例子吧。嘿嘿
public interface Processor {
String name();
Object process(Object input);
}
实现一个类
class FilterAdapter implements Processor{
Filter filter;
public FilterAdapter(Filter filter){
this.filter = filter;
}
public String name() {
return filter.name();
}
public Waveform process(Object input) {
return filter.process((Waveform)input);
}
}
在接口的process方法的返回值是Object,而在实现类里的process方法的返回值是Waveform。由于是实现所以不能加Override去检测
对于继承
public class Ex1 {
public Object name(){
return "";
}
}
public class Ex2 extends Ex1{
@Override
public String name(){
return "";
}
}
当把Ex1方法的返回值改成Double的时候报错。
总结如下
1、接口的实现和类的继承的Override的时候。要求方法签名相同
2、要求返回值子类或实现的返回值小于或等于父类或接口返回值的域。
第二条很拗口。。还是看例子吧。嘿嘿