IA a = new A();
然后可以通过a来调用你的接口方法了
B是什么?又一个类?
如果b是新类的话,你又要调用a中的方法〔是a而不是IA接口的〕,你就只能是继承a类了。
如果是在b类中调用a类的方法,如楼上 IA a = new A(); 〔只能调用接口IA方法,不能调用a的方法〕
一楼正解
一楼
只能用接口来实例化类,不能实例化接口的。
1 楼正解!接口是不能够被实例化的,只有去实例化它的实现类!
IA a = new A(); A a = new A(); 都可以!
1楼说的对。我补充下。有个问题:你仅仅是要实例化接口吗?
在spring中“控制反转”和“依赖注入”对外表现的就是实例化接口,那只是假象。接口是不能实例化的,或者说,接口只是规则,没有具体的形态,自然不可能是对象,想对它实例化,想都不要想。
你要是不想创建实例化的类,也就是一楼的“A”,可以借鉴“代理模式”,自动为你需要“实例化的接口”创建实例化的类。这个有点复杂,我也不是很懂,不过我仔细想过,理论上可行。