A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张亚超 中级黑马   /  2015-4-10 15:36  /  840 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//: typeinfo/toys/ToyTest.java
// Testing class Class.
package typeinfo.toys;
import static net.mindview.util.Print.*;
interface HasBatteries {}
interface Waterproof {}
interface Shoots {}
class Toy {
  //Comment out the following default constructor
  //to see NoSuchMethodError from (*1*)
Toy() {}
Toy(int i) {}
}
class FancyToy extends Toy
implements HasBatteries, Waterproof, Shoots{
FancyToy() { super(1); }
}
public class ToyTest {
static void printInfo(Class cc) {
   print("Class name: " + cc.getName() +
     " is interface? [" + cc.isInterface() + "]");
   print("Simple name: " + cc.getSimpleName());
   print("Canonical name : " + cc.getCanonicalName());
  }
public static void main(String[] args) {
   Class c = null;
   try {
     c = Class.forName("typeinfo.toys.FancyToy");
    }catch(ClassNotFoundException e) {
     print("Can't find FancyToy");
     System.exit(1);
    }
   printInfo(c);      
   for(Class face : c.getInterfaces())
     printInfo(face);
    Classup = c.getSuperclass();
    Object obj = null;
    try {
      // Requires default constructor:
      obj = up.newInstance();
    } catch(InstantiationException e) {
      print("Cannot instantiate");
      System.exit(1);
    } catch(IllegalAccessException e) {
      print("Cannot access");
      System.exit(1);
    }
    printInfo(obj.getClass());
  }
} /* Output:
Class name: typeinfo.toys.FancyToy isinterface? [false]
Simple name: FancyToy
Canonical name : typeinfo.toys.FancyToy
Class name: typeinfo.toys.HasBatteries isinterface? [true]
Simple name: HasBatteries
Canonical name : typeinfo.toys.HasBatteries
Class name: typeinfo.toys.Waterproof isinterface? [true]
Simple name: Waterproof
Canonical name : typeinfo.toys.Waterproof
Class name: typeinfo.toys.Shoots isinterface? [true]
Simple name: Shoots
Canonical name : typeinfo.toys.Shoots
Class name: typeinfo.toys.Toy is interface?[false]
Simple name: Toy
Canonical name : typeinfo.toys.Toy
*///:~
求大神解答:加黑体大字体的这部分是怎么运行的啊,看不懂啊

16 个回复

倒序浏览
Classup = c.getSuperclass();  //获取c 的父类并赋给up类
    Object obj = null;
    try {
      // Requires default constructor:
      obj = up.newInstance(); //通过newInstance()方法获取一个c父类的对象。
这样即使不知道c的父类是谁,也可以通过反射的方式实例化一个父类的对象
回复 使用道具 举报
xlunaer 发表于 2015-4-10 18:27
Classup = c.getSuperclass();  //获取c 的父类并赋给up类
    Object obj = null;
    try {

虽然还是不太理解,感谢感谢啊
回复 使用道具 举报
张亚超 发表于 2015-4-10 20:52
虽然还是不太理解,感谢感谢啊

回去把反射再看看,我最近也在看,这部分知识有点抽象,多想想
回复 使用道具 举报
这么复杂,学习。。
回复 使用道具 举报
反射啦 看看教程就懂的
回复 使用道具 举报
哈哈哈哈 找问问大神
回复 使用道具 举报
还没学到呢!拜膜一下算了
回复 使用道具 举报
xlunaer 发表于 2015-4-10 21:33
回去把反射再看看,我最近也在看,这部分知识有点抽象,多想想

哥们,你是准备报 5月7号那个班吗,方不方便留个qq我的 1337900012
回复 使用道具 举报
涿郡丶二哥 发表于 2015-4-10 21:49
还没学到呢!拜膜一下算了

我这看了也不懂。。
回复 使用道具 举报
sisel 发表于 2015-4-10 21:47
反射啦 看看教程就懂的

会努力接着看的:lol
回复 使用道具 举报
学习学习!还没有到这呢!
回复 使用道具 举报
学些 下,定下
回复 使用道具 举报
怒赞一个,学习
回复 使用道具 举报
lf027 中级黑马 2015-4-10 22:48:30
15#
这还在努力呢,加油啊,兄弟
回复 使用道具 举报
张亚超 发表于 2015-4-10 22:28
哥们,你是准备报 5月7号那个班吗,方不方便留个qq我的 1337900012

不是,我打算报5.18的android
回复 使用道具 举报
xlunaer 发表于 2015-4-11 13:53
不是,我打算报5.18的android

好吧,加油   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马