# java compile time binding vs runtime binding ###### tags: java ``` class A { int temp = 10; public void print() { System.out.println("In Class A"); } } class B extends A { int temp = 20; public void print() { System.out.println("In Class B"); } } public class Test5 { public static void main(String args[]) { A a = new B(); System.out.println(a.temp); a.print(); } } ``` output: ``` 10 In Class B ``` so basically the class fields are bound at compile time, but the method will be bound at runtime, seems weird so noting it down.