java8default鸡肋一样,重载--面向对象的鸡肋,强类型语言的软肋

以下言论为新手见解,如有不妥,请不吝赐教。

重载就是一个类里面定义了几个相同名字但不同参数的函数/方法。如下:

1 classBasketballPlayer{2 privateString sex;3 privateString name;4 public voidtest (String name){5 ......}6 public voidtest (String name,String sex){7 ......}8 }

不过我个人感觉有些时候这个功能比较鸡肋,我还不如像下面那样写简单省事,可惜下面这种写法在JAVA里面用不了,还好在我经常用的C/C++和PHP中都支持:

1 classBasketballPlayer{2 privateString sex;3 privateString name;4 public void test (String name,String sex="man"){5 ......}6 }

当然重载它也有实用的时候,比如:

int themax(int a,intb){return a>b?a : b;

}float themax(float a, floatb){return a>b?a : b;

}

不过我还是觉得这个不是一个好办法,相同的功能只是不同数据类型就要写那么多遍逻辑完全相同的东西,就是浪费体力啊,要修改还得一个个改,说不定就改漏了。我想可能弱数据类型(比如PHP)是一个更好的解决方案,它自动帮你搞定不同的数据类型了。如下:

1 <?php2 function themax($a,$b){ //max是系统函数不能用了,所以起名叫themax

3 return $a>$b ? $a : $b;4 }5 ?>

目前流行的几门强类型语言的编译器将来会不会,敢不敢,愿不愿把“弱类型”加进去呢。这很难说,可能较长一段时间内都不会。尤其是Java更不可能,有些功能就是 别人早就已经有了,它要过了N久才有,例如switch里面要放个字符串都要到1.7版本才有。目前来说,上面那个终极解决方案也只能在如PHP,JS这 样的弱类型语言上用了,强类型还是得在复制粘贴修改的轮回中痛苦一段时间。

原文:http://www.cnblogs.com/batsing/p/4032736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值