import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
//输入要实例化的类名:Base、Sub1、Sub2 三者之一
String className = scanner.next();
Base obj = (Base) Class.forName(
className).newInstance();//得到输入的classNmae,并用newInstance获得这个类的实例对象,在jdk9以后可以用(Base) Class.forName(className).getDeclaredConstructor().newInstance();
System.out.println(getClassName(obj));
}
}
public static String getClassName(Base obj) {
//第一种方法:
// //看下面的类可知呢,Base是sub1和sub2的祖类,故这里的形参的类型用Base
// if(obj.getClass()==Base.class){
// return "Base";
// }
// else if(obj.getClass()== Sub1.class){
// return "Sub1";
// }
// return "Sub2";
// }
//第二种方法:
//看下面的类可知呢,Base是sub1和sub2的祖类,故这里的形参的类型用Base
//这个方法有一个判断:因为Base是Sub1和Sub2的父类,所以第一个判断不能是obj instanceof Base
// if(obj instanceof Base){
// return "Base";
// } //不可以这样哈
if(obj instanceof Sub2){
return "Sub2";
}
else if(obj instanceof Sub1){
return "Sub1";
}
return "Base";
}
}
class Base {
}
class Sub1 extends Base {
}
class Sub2 extends Base {
}