接口的成员变量还是属于接口的。用实现类可以调用接口成员变量是因为java的上溯机制,一个类调用它没有的成员变量或方法时,java会自动到这个类的父类和接口里找,如果没有,就继续向上找,直到找到为止,如果最后找不到就会报错。你用接口的实现类调用接口的成员变量时,因为这个类里面没有,所以java会去它的父类和接口里面找,在接口里找到了,就用接口调用这个成员变量。也就是说,表面上好像是实现类调用了接口的成员变量,实际上还是接口本身调用的。这只是一种错觉,你还可以创建一个这个类的对象,然后用对象名调用接口的成员变量,一样可以调得出来,原因同上。
接口中的成员变量和其实现类的关系
最新推荐文章于 2023-02-10 12:08:02 发布