Skip to content

Instantly share code, notes, and snippets.

@phyous
Created February 25, 2013 05:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phyous/5027857 to your computer and use it in GitHub Desktop.
Save phyous/5027857 to your computer and use it in GitHub Desktop.
public class Main {
static class A {
public void foo() {
System.out.println("foo - A");
}
public void bar() {
System.out.println("bar - A");
}
}
static class B extends A {
public void foo() {
System.out.println("foo - B");
}
public void baz() {
System.out.println("baz - B");
}
}
public static void main(String[] args) {
A a = new A();
B b = new B();
a = b;
// Calling foo on class A defers to B subclass implementation since we assigned b to a
// prints: foo - B
a.foo();
// a.baz() -- error! baz is only a method on class B
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment