Java Generic Programming: Parametric Polymorphism
4.0 (15 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,374 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Java Generic Programming: Parametric Polymorphism to your Wishlist.

Add to Wishlist

Java Generic Programming: Parametric Polymorphism

Generic Method, Generic Container, Java Parametric Polymorphism, Object Class in Java, Java Generics
4.0 (15 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,374 students enrolled
Created by Dr. Eric Chou
Last updated 4/2017
Price: Free
  • 2 hours on-demand video
  • 2 Articles
  • 36 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn to construct a generic class or design a static generic function (method) in Java Language.
  • Use generic programming as a stepping stone to learn functional languages that is on top of Java Virtual Machine (JVM), such as Scala.
  • Make your programming efficiency much higher by utilization of Generics.
  • Know insight knowledge of Java Generics.
View Curriculum
  • Java Programming Essentials, Java Object-Oriented Programming or Equivalents

[CS 130]

Generics are a facility of generic programming that were added to the Java programming language in 2004 within the official version J2SE 5.0. They extend Java's type system to allow “a type or method to operate on objects of various types while providing compile-time type safety.” In particular, the Java collections framework supports generics to specify the type of objects stored in a collection instance.

This mini-course is designed as a supplemental materials for the Java Object-Oriented Programming: AP Computer Science B. In this mini-course, we will be based on Java 8 SE.


  1. What is Polymorphism?
  2. What is parametric polymorphism (Generics)?
  3. Define Generic Class and Generic Interface
  4. Generic Methods
  5. Generic Containers
  6. Applications

This course is a mini-course, it is not designed to be a complete educational course. It is focused on a single topic: Java Generics.

Who is the target audience?
  • Student who has taken (College Level/High School AP) Java 1, Java 2 or equivalents. Whoever want to know about parametric polymorphism in Java.
  • College Student who are taking Java.
  • High School Student who are taking AP Computer Science A/AB
  • Engineers seeking for job interview preparation.
Compare to Other Polymorphism Courses
Curriculum For This Course
20 Lectures
4 Lectures 31:21

Overview of Generic Programming.

Overview of Java Generic Course!

Java compiler installation guide.

Java 8 Standard Edition Installation Guide (Stand-alone Version)

Installation Guide for Eclipse (Neon) and plugins. (The same method can be used for all other versions of Eclipse)

Eclipse and Java

Show the internet resources available for eC Learning Channel by Dr. Eric Chou to support this course. 

My Udemy:

Youtube channel:




eC Channel:


eC Learning Channel
Parametric Polymorphism
5 Lectures 30:41

Introduction to Generics: Java Parametric Polymorphism.

What is Generics?

Discuss the Universal Reference Type (Object). Compare it to generic (since Java JDK 1.5).

Universal Reference Type -Object

This lecture presents a program example for the previous lecture. 

Universal Reference Type -Object (Example Program

Basic definition for Java Generics

Generics Basics

Discuss the Generic Static Methods

Generic Methods

Quiz 1 on general idea about polymorphism.  

Quiz 1: Basic Polymorphsim
5 questions
Generic and Object-Oriented Programming
8 Lectures 45:22

Use Bounded Generic Type definition to limit parametric polymorphism on classes that can be applied with proper polymorphic methods.

Bounded Generic Type

Using a Selection Sort program to demonstrate how to design a generic sorting method. 

Case Study: Generic Sorting program

Backward Compatibility of Java 8 and 9 about Raw Type

Raw Type

Identify the need for the wild card symbol for generic type variables.

Wildcard Generics

Unbounded and Bounded Wildcard Demo

Unbounded Wildcard Generics

Discuss  Super wildcard and its relationship with unbounded wildcard and extend-wildcard. 

Super-Wildcard Generics

Discuss type erasure and implementation issues for Generics. 

Erasure and Restriction on Generics (Implementation Issues)

Use Integer Matrix and Rational Matrix as example to demonstrate the power of Wildcard Generics 

Case Study: Generic Matrix

Test on the mechanism and programming using Java Generics. 

Quiz 2: Java Generic Mechanisms
7 questions
Appendix (Optional)
3 Lectures 23:36

Demonstrate how to install Java Development Kit (JDK 8) and Integrated Development Environment (Eclipse and BlueJ). We use BlueJ as our default tool. Please also download the PeaZip program if you do not have proper compression/de-compression program. (In this course, we use BlueJ as the main development IDE.) If you want to use Eclipse, please download



You may also find PeaZip tool to be useful when you need to download a zipped source code file (.zip).

Software Installation BlueJ

Demonstrate the advantages of BlueJ as the first Integrated IDE for beginning students.

Why BlueJ?

Listing for reasons to use BlueJ.

Why BlueJ? (Extra-Materials)
About the Instructor
Dr. Eric Chou
3.9 Average rating
149 Reviews
6,373 Students
4 Courses
IEEE Senior Member, an engineer and an inventor

I love computational research and its application to real world. i have involved in many large-scale computer/communication product research development in many world-leading company such as HP, Micrel, and many startups. I also involved in founding a startup company. I also enjoy sharing my ideas through teaching. I hold many US and international patents in technical fields such as software development, mobile computing, IC design and communication receiver design. I am also a certified coach in Taekwondo in both UAST and AAU. 

I also serve as an adjunct faculty for on-line M.S. program in Computer Science/Data Science at Lewis University, IL, USA.