
Java Inheritance and Recursion
IntermediateInheritance is a fundamental object-oriented programming mechanism in Java that allows a subclass to inherit fields and methods from a superclass, promoting code reuse and establishing an is-a relationship. Subclasses extend superclasses using the extends keyword and can override inherited methods to provide specialized behavior. The super keyword accesses parent constructors and methods, and all classes ultimately inherit from java.lang.Object.
Polymorphism enables a superclass reference to hold a subclass object, with method calls resolved at runtime based on the actual object type (dynamic dispatch). Abstract classes define method signatures that subclasses must implement, while interfaces specify contracts that classes can implement across inheritance hierarchies. Understanding upcasting, downcasting, and the instanceof operator is essential for working with polymorphic code.
Recursion is a technique where a method calls itself to solve problems by breaking them into smaller subproblems. Every recursive method requires a base case (stopping condition) and a recursive case that moves toward the base case. Classic recursive algorithms include factorial, Fibonacci, binary search, and merge sort. This topic covers AP Computer Science A Units 9 and 10, comprising approximately 10-15% of the AP exam.
Practice a little. See where you stand.
Quiz
Reveal what you know — and what needs work
Adaptive Learn
Responds to how you reason, with real-time hints
Flashcards
Build recall through spaced, active review
Cheat Sheet
The essentials at a glance — exam-ready
Glossary
Master the vocabulary that unlocks understanding
Learning Roadmap
A structured path from foundations to mastery
Book
Deep-dive guide with worked examples
Lab
Hands-on practice for this subject
Key Concepts
One concept at a time.
Explore your way
Choose a different way to engage with this topic — no grading, just richer thinking.
Explore your way — choose one:
Curriculum alignment— Standards-aligned
Grade level
Learning objectives
- •Create subclass-superclass hierarchies using extends and call parent constructors with super()
- •Override inherited methods and explain how dynamic dispatch determines which method executes at runtime
- •Distinguish between abstract classes and interfaces and explain when to use each
- •Write recursive methods with correct base cases and recursive cases to solve problems
- •Trace recursive calls to predict output and identify common recursion errors like missing base cases
Recommended Resources
This page contains affiliate links. We may earn a commission at no extra cost to you.
Books
Barron's AP Computer Science A
by Roselyn Teukolsky
Head First Java
by Kathy Sierra and Bert Bates