Computer Science 15-100 (Sections T & U), Fall 2007
Class Notes: Polymorphism (2 of 2)
Logistics
Code from class:
import java.util.ArrayList;
@SuppressWarnings("unchecked")
class MyCode {
public static void main(String[] args) {
ArrayList al = new ArrayList();
MutableString s = new MutableString("foo");
al.add(s);
s = new MutableIntString(1,2);
System.out.println(s.toString());
al.add(s);
System.out.println(al);
s.set("bar");
System.out.println(al); // see bar here
}
}
class MutableIntString extends MutableString {
public MutableIntString(int i, int j) { super("" + Math.min(i,j)); }
public String toString() { return "MIS:" + super.toString(); } }
class MutableString {
public MutableString(String s) { this.s = s; }
public String get() { return this.s; }
public void set(String s) { this.s = s; }
public String toString() { return this.s; }
private String s;
}
class A {
public void foo() {
System.out.print("a");
System.out.print((this instanceof C) ? "t" : "f");
}
}
class B extends A {
public void foo() {
System.out.print("b");
}
}
class C extends A {
public void foo() {
super.foo();
System.out.print("c");
}
}
class D extends C {
public void foo() {
System.out.print("d");
super.foo();
super.foo();
}
}
Carpe diem!