Object-Oriented Hierarchies in Java is the third of a series of courses in the Core Java Specialization. The Core Java Specialization is part of a series of programming specializations, derived from LearnQuest's private Java Bootcamps, designed to provide the skill set necessary to be hired as an IT developer using Java in many corporate environments.
This course includes hands-on practice and will help you build on your knowledge of the Java language. After completing this course, you will have a deeper understanding of how to effectively implement and use inheritance and polymorphism in Java.
To be successful in this course, you should have taken:
- Course 1: Introduction to Java
- Course 2: Introduction to Object-Oriented Programming with Java
or have equivalent knowledge.
In this video, we will introduce you to this course and explain what you will learn.
OO Programming Relationships
This module foreshadows the entire course, covering O-O Relationships, Inheritance, Polymorphism, Interfaces, Aggregation, and Design Guidelines. The following modules revisit selected topics in more detail.
This module goes into more detail on implementing class inheritance in Java, including overriding methods, invoking overridden parent methods using super, and more.
This module discusses Abstract classes, including what they are; where you might use them; how to implement them; and concludes with discussion of casting, which is the technique of taking a reference of a given type, and asserting a different type.
Interfaces are the key to polymorphism in Java, since Java requires inheritance in order to implement polymorphism, and classes are limited to the single inheritance graph. This module goes into more detail on interfaces and polymorphism, and includes discussion of new Java 8 features, such as default and static methods, Functional Interfaces, Java Lambdas, and Method References.
Just as the first module served to foreshadow the entire content of this course, this module serves as a brief capstone, with a conceptual discussion of polymorphism mechanisms in Java, and practices for ensuring that polymorphism is an option in your programs.