题解 | #类型判断#
类型判断
http://www.nowcoder.com/practice/97223208ca954e67832da716b46e5d72
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String className = scanner.next();
Base obj = (Base) Class.forName(className).newInstance();
System.out.println(getClassName(obj));
}
}
public static String getClassName(Base obj) {
//write your code here......
/*instanceof关键字的使用,它是多态性中父类引用向下转型的前置判断手段.
有效控制了类的转换异常ClassCastException的出现*/
if(obj instanceof Sub1){
return "Sub1";
}else if(obj instanceof Sub2){
return "Sub2";
}else{
return "Base";
}
}
}
class Base { //父类
}
class Sub1 extends Base { //子类1
}
class Sub2 extends Base { //子类2
}
