java多态性总结二

多态性:发送消息给某个对象,让该对象自行决定响应何种行为。
通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。

The Java Virtual Machine does not require any particular internal structure for objects. In Sun's current implementation of the Java Virtual Machine, a reference to a class instance is a pointer to a handle that is itself a pair of pointers: one to a table containing the methods of the object and a pointer to the Class object that represents the type of the object, and the other to the memory allocated from the Java heap for the object data. (jvm规范中关于对象内存布局的说明)

* 为什么子类的类型的对象实例可以覆给超类引用?
  自动实现向上转型。通过该语句,编译器自动将子类实例向上移动,成为通用类型BaseClass;
  * 执行子类还是父类定义的方法?
  子类的。在运行时期,将根据父对象引用的具体子对象的实际的类型来获取对应的方法。所以才有多态性。一个基类的对象引用,被赋予不同的子类对象引用,执行该方法时,将表现出不同的行为。

你可能感兴趣的:(java,jvm,sun)