Midterm

Model 

Class extension mechanism (modeling in stages)

Inheritance

Polymorphism 

Dynamic method lookup (overriding) 

Constructor chaining

class Horse extends java.lang.Object {
  String name; 
  Horse(String name) {
    this.name = name; 
    super(); 
  } 
}

class Unicorn extends Horse {
  Unicorn() {
    super(); 
  }
}

Make a change and propagate it:

class Horse extends java.lang.Object {
  String name;
  Horse(String name) {
    super();
    this.name = name;
  }
}

class Unicorn extends Horse {
  Unicorn(String name) {
    super(name);
  }
}


Next: abstract classes and interfaces. 

--