==对于 上一篇文章的后续补充:
如果 为“abc” +“def” 操作 :最为直观的理解可以看为在class文件编译过程中就对其进行了转化
然而在使用变量a1+“def” 时,由于编译并不知道结果为什么,所以并未完成转化,使得在堆中重新开辟了一个空间,所以和常量池中存储的常量地址不一致。
再继续由于intern的含义是a1的地址空间中,常量所在的真实位置,即所在常量池位置,所以相等。
继而可以引出编译时多态,和运行时多态的概念:
所谓编译时多态即 方法的重载 ,在编译时就指定了相应的方法名和方法参数。
运行时多态即方法的描述符:权限修饰符 和 返回值类型 (权限修饰符必须比父类大,异常比父类小,不能使用static修饰---》会抛异常)方法名和参数类型必须相同,否则为方法重载。