请问这段代码的意思是什么意思?

private final UserService userService = new UserServiceImpl();

以上代码 UserService 为接口,UserServiceImpl 是一个类

请问为什么要运行时类型要声明为接口,直接

private final UserServiceImpl userService = new UserServiceImpl();

不是更方便吗?

接口不能实例化,用接口的实现类可以实例化,将实现类的对象在内存中的地址指向接口,这个接口就可以使用了
第二种方式 已经不是好不好的问题了,这样的话,要接口就没用了。
用接口就是让实例和实现类的耦合度降低。
让程序更加容扩展

朋友,给你打个比方,你的小车,今天要去加油,明天要去接人,后天要去保养...那么在这个过程中,你的车就是一个interface,而你的爱车要做的这些事,就是它的实现类,这是不是一个咱们Java中一个接口多种实现方式??反言之,你今天开大众去加油,明天开保时捷去接人,后天开法拉利去保养,虽然理论上可以做到,但是,这你不觉得很奇怪吗???说到这,是不是觉有又在哪里见过??对了,设计模式中不是有一种叫做策略模式??这种模式就是这么玩的;
加油!!!