老师出了一道题,写一个方法要求可以接受int,float,double,String型进行加法计算.不许用重载用OOP的思想写,我到是写出来了就是感觉写的不好:下面是我的原码,谁有更好的想法:
声明一个接口:
public interface MyInterface {
public Object add(Object shuzi1,Object shuzi2);
}
写一个类:
public class IterfaceDemo implements MyInterface {
public Object add(Object shuzi1, Object shuzi2) {
// TODO 自动生成方法存根
if (shuzi1.getClass().getCanonicalName() == "java.lang.Integer ")
{
return (Integer.valueOf(shuzi1.toString()) + Integer.valueOf(shuzi2.toString()));
}
else if (shuzi1.getClass().getCanonicalName() == "java.lang.Float ")
{
return (Float.valueOf(shuzi1.toString()) + Float.valueOf(shuzi2.toString()));
}
else if (shuzi1.getClass().getCanonicalName() == "java.lang.Double ")
{
return (Double.valueOf(shuzi1.toString()) + Double.valueOf(shuzi2.toString()));
}
else if (shuzi1.getClass().getCanonicalName() == "java.lang.String ")
{
return shuzi1.toString() + shuzi2.toString();
}
System.out.println(shuzi1.getClass().getCanonicalName());
return 0;
}
}
写一个测试类
public class InterfaceTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
//利用类库
IterfaceDemo e = new IterfaceDemo();
IterfaceDemo d = new IterfaceDemo();
IterfaceDemo f = new IterfaceDemo();
System.out.println( "利用类库 ");
System.out.println(e.add(23, 34));
System.out.println(d.add(23.3, 3.3));
System.out.println(f.add( "ff ", "gg "));
}
}
功能是实现了但是觉得完全是面向过程和用类库写出来得,不知道大家有什么更好的方法,互相交流一下.
------解决方案--------------------
总觉得老师要的结果不是你给出的答案
------解决方案--------------------
.............
就是不允许重载。感觉没有特别的撒
你不用类库,怎么可能可能实现方法,JDK就是类库,难道你不用JDK?