描述
父类Base有两个子类:Sub1、Sub2,现有一个方法getClassName(),要求传入Base类型的实例,在方法内部判定其具体的类型,返回的是类型的简单名字(不含包名),请补全getClassName()方法的判断逻辑。
输入描述:
输入要实例化的类名:Base、Sub1、Sub2 三者之一。
输出描述:
返回实例的实际类名(简化类名,不包含包的名字)。
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...... if(obj instanceof Sub1){ Sub1 sub1=(Sub1)obj; return sub1.getClass().getSimpleName(); }else if(obj instanceof Sub2){ Sub2 sub2=(Sub2)obj; return sub2.getClass().getSimpleName(); }else{ return obj.getClass().getSimpleName(); } } } class Base { } class Sub1 extends Base { } class Sub2 extends Base { }
https://www.nowcoder.com/practice/97223208ca954e67832da716b46e5d72?tpId=220&tqId=2113902&ru=/exam/oj/ta&qru=/ta/primary-grammar-java/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D290%26type%3D220

被折叠的 条评论
为什么被折叠?



