少了个第5行吧,如果是:
public void method(String o) {
就当然选c了
public void method(String o) {
就当然选c了
解决方案 »
- 【求助】学完线程,写了个死锁的线程,但老报错,为什么?
- 在做网站时,按钮的监听事件不知怎么办
- 想请教 Java 为什么不能反射方法体?
- 请教一个关于Jlist(swing)的问题
- 编译时总说非法表达式的开始~
- 关于java 游标 数据库 的问题??
- 华为在我校的一个试题,没弄懂为什么!
- JTree中的Node如何设置字体前景色?
- 哪里有JB5下载
- java 考试系统 下一题功能如何实现,跪求高手,要随机不重复
- 我做一个有SWING组件的APPLET,放到主页上是运行正常,但用中文输入法则出现问题,别人的机器就没有问题,我们机器的差别就是IE的版本。!!!
- 网上视频直播的解决方案(欢迎大家来讨论!)
能解释一下为什么选c吗?
可以赋值给String变量
1。 Object都可以为null,为什么说null属于简单数据类型呢?
2。 为什么简单数据类型就可以赋值给String变量呢?String不也是个类吗?
3。这个会不会跟编译器的选择有关呢?null可以看作是Object,也可以被看作是String时,编译器将其当作较为具体的一个类,是这样吗?
http://www.csdn.net/expert/topic/324/324293.shtm
这是一个OverLoad的问题(不是OverRiding),当你传入NULL时,编译器会自动匹配最"特殊"的参数,这里特殊是指String派生自Object,所以,String比Object特殊,(你应该明白吧!这是面向对象的基本思想),第二题为什么错,是因为StringBuffer与String都是同一等级的,因此,传入Null时,编译器无法辨别,So it's wrong !!! 同以级别可以理解,但为什么是匹配最“特殊”的参数呢?只是SUN的规定还是有什么道理?
就是说:
如果B是A子类,即B比A特殊。
如果有参数C类型是B,当然应当首先匹配B参数,因为B比A更具体、更特殊、更接近实体本身。
这个第二点呢,和Polarislee(北极星)的意见是完全相同
这个第三点呢,我我不讲大家也都已经知道了哈哈哈哈哈
并没指定null是String类型啊