public interface Comparable{
public void comparableTo();
}
public class Cat impletements Comparable{
public void comparableTo(){
System.out.println("对比");
}
}
public class Test{
public static void main(String[] args){
Comparable compare = new Cat();//1、父类引用指向子类对象
compare.comparableTo();//1、父类引用指向子类对象
//**************************************//
Cat cat = new Cat();//
Comparable compare = (Comparable)cat;//2、这里也是父类引用指向子类对象吗??
compare.comparableTo();//2、我感觉这怎么好像是接口的对象在调用子类的方法啊??
//**********上面例子的2、该怎么解释啊?请求指点*******//
} }
这里是向上转型 , 你也可以这么理解
compare.comparableTo();//2、我感觉这怎么好像是接口的对象在调用子类的方法啊??
这里这个对象本身原来就是cat,是compare指向的这个对象的地址,调用的方法当然也是cat的。
应该等同于Comparable compare = cat;吧,自动向上转型。