为什么可以在Java接口方法上调用方法? [可比]

今天在AP计算机科学课上,我有这个代码
Comparable x = 45;
    Comparable y = 56;
    System.out.println(x.compareto(y));

这是有效的.它打印1(或-1,我忘了哪个),但可以比较它们.

我理解接口变量是指实现该接口的类的对象,但对我来说没有意义的是如何为接口变量分配一个整数,然后在其上调用一个方法.在这种情况下,什么对象是被调用的compareto()方法?什么都没有实例化!

解决方法

这称为 autoboxing,您的原始int类型自动包装到Integer实例中,该实例是一个对象,它实现了Comparable接口.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...