为了账号安全,请及时绑定邮箱和手机立即绑定

怎样区分oa 的类型

可是强制转换为officeable类型之后,在用start方法,oa怎么知道是用哪个类的start方法呢?

正在回答

1 回答

比如说有猫类和狗类,都继承动物类,执行c.newInstance()以后生成的是哪个类的对象就已经确定了,这时候强转就相当于这样:Cat cat = new Cat(); Animal a = (Animal) cat; a.eat()就调用的是Cat类中的eat(),因为a是从Cat类对象强转过来的,所以调用的是Cat中的eat()

0 回复 有任何疑惑可以回复我~
#1

stonesingsong

另,提问者问的是接口与实现类,你举得是父类与子类,有细微差别
2017-10-31 回复 有任何疑惑可以回复我~
#2

stonesingsong

再另,Animal a = (Animal) cat;这里(Animal)是多余的,强制转换是对已装箱对象进行拆箱的过程,即: Cat cat = new Cat(); //新建cat对象 Animal animal = cat; // 装箱 Cat cat2 =(Cat)animal; //拆箱 而Animal a = (Animal) cat;是装箱的过程,故(Animal) 是多余的, Cat cat2 =(Cat)animal; 这里的(Cat)才是必须的。
2017-10-31 回复 有任何疑惑可以回复我~
#3

nwpu_sdu 提问者 回复 stonesingsong

谢谢解答,如果说只是起了个别名,那就清楚多了。
2017-11-14 回复 有任何疑惑可以回复我~
#4

nwpu_sdu 提问者 回复 stonesingsong

谢谢解答,这样解释清楚多了!
2017-11-14 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

怎样区分oa 的类型

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信