Skip to content

Week 03: Polymorphism

  • Overloading

    After this unit, students should

    • understand what is overloading.
    • understand how to create overloaded methods.
  • Polymorphism

    After this unit, students should

    • understand polymorphism.
    • be aware of dynamic binding.
    • be aware of the equals method and the need to override it to customize the equality test.
    • understand when narrowing type conversion and type casting are allowed.
  • Method Invocation

    After this unit, students should

    • understand the two-step process that Java uses to determine which method implementation will be executed when a method is invoked.
    • understand that Class Methods do not support dynamic binding.
  • Liskov Substitution Principle

    After this unit, students should

    • understand the type of bugs that reckless developers can introduce when using inheritance and polymorphism.
    • understand the Liskov Substitution Principle and thus be aware that not all IS-A relationships should be modeled with inheritance.
    • know how to explicitly disallow inheritance (for a class) or disallow overriding (for a method) with the final keyword.
  • Abstract Class

    After this unit, students should

    • be familiar with the concept of an abstract class.
    • know the use of the Java keyword abstract and the constraints that come with it.
    • understand the usefulness of defining and using an abstract class.
    • understand what makes a class concrete.
  • Interface

    After this unit, students should

    • understand interface as a type for modeling "can do" behavior.
    • understand the subtype-supertype relationship between a class and its interfaces.