这个是父类引用指向子类,也就是说你虽然在BBB的a方法里new了一个BBB对象,但是BBB是实现了AAA的,而且a的返回类型是AAA,也就是说你现在a里new的BBB对象是被一个AAA的引用指向,所以只能调用AAA的方法,如果要调用BBB的方法就要强制转换类型
你返回的实例是BBB。但是引用类型是AAA。
相当于AAA b = new BBB();
这样你就不能b.b();
因为b的引用类型是AAA。AAA方法里是没有函数b()的
这就好比
Object o = new Worder();
o.doJob();是不行的
因为Object对象里没有doJob的方法
很简单,虽然实例是BBB,但是是以接口AAA类型返回的,AAA里面没有b方法,所以你不能调b