答案:C
Java中字符型数据内部采用的数字存储的。
Java中的方法调用,会找最“合适”的方法。当然这个合适也要参数类型兼容。
如果此时在方法中存在 void test(char c) 这样的方法,它一定会执行这个方法的。
选c, 因为char和int是可以互相转换而不需要强制转换的,就是说char类型的字符对应一个int值(ascii码)
应该选D,主Main中你创建了一个对象t, t调用了test这个函数,这个函数当参数不同时会调用对应的那个方法。就是这样的。
C char自动ASCII成int了
选C。在这里基本数据类型向上提升,char自动提升为int。char是不可能提升为String的。
你可以验证一下:
========================================================================
class TestCast{
/* 编译不报错 */
void test(int s){
System.out.println("I am a String");
}
public static void main(String[] args){
TestCast t = new TestCast();
char ch = 'y';
t.test(ch);
}
}
==========================================================================
class TestCast{
/* 编译报错 */
void test(String s){
System.out.println("I am a String");
}
public static void main(String[] args){
TestCast t = new TestCast();
char ch = 'y';
t.test(ch);
}
}