LUB for Objects
class foo1 extends bar
class foo3 extends bar
class foo2 extends foo3
bar
foo1
foo2
object
null
1 ifeq 4
2 aload 1 // foo1
3 goto 5
4 aload 2 // foo2
5 aload 3 // object of type o
5 putfield <o.f:bar>
foo1??foo2 ? bar?
But none of these classes may be loaded.
This circumstance causes JDK 1.1to load foo1, foo2, and their superclasses to determine if there is a type error on line 5.
foo3
Previous slide
Next slide
Back to first slide
View graphic version