场景:
两个jar包分别为a.jar、b.jar。b.jar中引用了a.jar,具体为b.jar中的类B继承了a.jar中的类A。
A有两个方法,a.getName(),a.getAge(),B重写了getName方法,未重写getAge方法。
新建了一个Java项目C,**C只引用了b.jar,未引用a.jar**,于是出现了如下两个问题:
1、在C项目中,类B没有getAge方法
2、在C项目中,使用强制类型转换时(如)B b = (B)map.get("key"),会报错: - The type A cannot be resolved. It is indirectly referenced from required .class files
请教:1、构建子类对象时,继承自父类的方法为何没有加载?2、强制类型转换为何需要找A类?
追加:前提就是C项目不能引用a.jar。不然也不会发现这个问题。我知道引入a.jar可以解决这个问题。但是想知道为何必须引入a.jar。虚拟机加载b.jar中的类并创建对象时,难道不是把所有方法都准备好了吗?为什么还会有父类方法不可见的情况