1.编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定. 当编译时类型和运行时类型不一致时,就会出现所谓的多态. 因为子类是一个特殊的父类,因此java允许把一个子类对象直接赋给一个父类的引用变量,无需任何类型转换(向上转型) 引用变量在编译阶段只能通过编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法.因此,编写java代码时,引用变量只能 调用声明该变量时所用类里包含的方法. 2.编写程序时,引用变量只能调用它编译时类型的方法,而不能调用运行时类型的方法…