5.7.2
编写java程序时,引用变量只能调用它编译时类型的方法,不能调用它运行时类型的方法。
理解:引用变量只能调用引用变量类型中的方法,不能调用引用变量实际指向对象中“额外”的方法。
import static java.lang.System.out;
/**
* @author jowei
*
*/
public class TestClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Base a = new Derived();
a.write(); //ok
a.read(); //wrong
}
}
class Base {
public void write() {
out.println("From base class");
}
}
class Derived extends Base {
@Override
public void write() {
out.println("Frrom derived class");
}
public void read() {
out.println("read a book");
}
}
在上例中引用变量为a,引用变量类型为Base,实际指向对象为Derived。