Java中动态实例化一个对象

使用场合:不知道具体要去实例化那个类的对象,通常这个参数由用户传入。即类名不确定!

使用方法:

 
 
  1. Class newTraffic = Class.forName("Car"); 
  2. Traffic t= (Traffic)newTraffic.newInstance(); 

    说明:

1、newTraffic为定义的一个变量,类型为Class,用来保存我们动态创建对象实例的类名;

2、forName()这个方法传入的参数是类名,即Car是我们定义好的一个类,返回的是Car这个类;

3、newInstance()即为实例化一个对象,注意它无参数,即它默认调用一个不带参的构造方法,如果你没定义这个不带参的构造方法,系统会调用默认的不带参的构造方法;

4、(Traffic)newTraffic.newInstance(); 这里使用了强制类型转换,如果不进行转换,它默认返回一个原生的Object,这个Object无法调用Car类的任何方法;

5、Traffic是我们定义的一个接口,其中有Car和Plane等具体的类来实现这个接口中的方法。后面可以通过t来调用接口中的方法,当然这个方法的具体实现是放到Car或者Plane等类中的,这样就好比是我们动态创建了Car类,然后调用它里面的一些方法。说得有点通俗,这个在Java里称为接口回调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值