本帖最后由 焦晨光 于 2012-8-3 16:12 编辑
问题已解决
java中,引用变量只能调用它编译时类型的方法,而不能调用它运行时类型的方法
问:编译时类型的方法和运行时类型的方法是什么意思,有什么区别?
如果要让这个引用变量调用它运行时的类型,则必须把它强制类型转换为运行时类型
问:怎么强制类型转换引用变量?
class BaseClass{
public int book=6;
public void base(){
System.out.println("父类普通方法");
}
public vodi test(){
System.out.println("父类被覆盖的方法");
}
}
public class SubClass extends BaseClass{
public String book="简单的问题";
public void test(){
System.out.println("子类覆盖父类的方法");
}
public void sub(){
System.out.println("子类普通方法");
}
}
public static void main (String[] args){
BaseClass bc = new SubClass();
System.out.println(bc.book);//这里为什么输出6
bc.base();
bc.test();//上面两次调用的方法,分别调用的是哪个方法?
}
|
|