当前位置: 代码迷 >> Java面试 >> 学习 Thinking in java 的接口遇到的一些有关问题,吓死小弟我了
  详细解决方案

学习 Thinking in java 的接口遇到的一些有关问题,吓死小弟我了

热度:684   发布时间:2016-04-17 00:13:14.0
学习 Thinking in java 的接口遇到的一些问题,吓死我了
import java.util.*;
import static will.Print.*;

class Processor{
   public String name(){
return getClass().getSimpleName();
   }
   Object process(Object input){ return input;}
}

class Upcase extends Processor{
   String process(Object input){// Covariant return 
return ((String)input).toUpperCase();
   }
}

class Downcase extends Processor{
   String process(Object input){
return ((String)input).toLowerCase();
   }

}

class Splitter extends Processor{
   String process(Object input){
// The split() argument divides a String into pieces:
return Arrays.toString(((String)input).split(" ")); 
   }
}

public class Apply{
这个方法我没有理解
   public static void process(Processor p,Object s){
print("Using Processor"+p.name());
print(p.process(s));
   }
   public static String s = 
"Disagreement with beliefs is by definition incorrect ";
   public static void main(String[] args){
process(new Upcase(),s);
process(new Downcase(),s);
process(new Splitter(),s);
   }
------解决思路----------------------
 public static void process(Processor p,Object s)
简单理解就是process方法是中介
将定义的处理类和要处理的数据在这个地方联系起来
而且只是定义接口规范(这里好像没用的接口,但意义差不多)
具体需要怎么处理,就看传入的是什么样的Processor的子类了
------解决思路----------------------
p,process(s)是具体的Processor子类处理传入的数据s
比如第一个process(new Upcase(),s);
就会调用
 String process(Object input){// Covariant return 
return ((String)input).toUpperCase();
将s内容转为大写,并把大写字符串返回
然后print(引入的静态方法)将返回的大写字符串打印出来
  相关解决方案