Java接口实力对象可以用实现它的类来实例化的原因

看书书上说Java接口不能实例化,但代码里Java接口通过啦实现它的类进行了实例化,是什么来的啊,搞不懂,那继承里面是不是父类也可以通过子类进行实例化了,还有抽象类的实例化是不是也可以这样,原因是啥啊?
比如:
接口a,类b实现了a这个接口。
可以a obj = new b();也可以b obj = new b();第一种的原因是啥呢?

抽象类和接口都不能实例化对象,只有继承或实现抽象类和接口的类才能实例化,父类接受子类的对象是不能访问子类的对象的,但可以访问子类重写的方法了,这也是多态的体现,如果非要访问子类对象,那就向下转型,向下转型之前使用Instance判断一下,不然会报类型转换异常

因为你实例化的还是对象,不是接口,哪怕a是接口,但是你new的是b。如果new a就不行