Questions and Answers
What is an abstract class?
Why can't we instantiate an abstract class in Java?
Because it represents an abstract concept and requires a specific type of instance.
What is an abstract method?
What happens when an abstract class is subclassed?
Signup and view all the answers
What is a similarity between interfaces and abstract classes?
Signup and view all the answers
Match the following features to abstract classes and interfaces:
Signup and view all the answers
When should you use an abstract class?
Signup and view all the answers
When should you use an interface?
Signup and view all the answers
What is an example of an abstract class in JDK?
Signup and view all the answers
Which subclasses does AbstractMap contain?
Signup and view all the answers
What methods does AbstractMap define?
Signup and view all the answers
What is an example of a class that implements several interfaces?
Signup and view all the answers
What is an example of an interface in JDK?
Signup and view all the answers
A class that implements an interface must implement all declared methods.
Signup and view all the answers
When does an abstract class implement an interface?
Signup and view all the answers
What is the keyword used to invoke an overridden superclass method?
Signup and view all the answers
How do you initialize an array in Java?
Signup and view all the answers
What is the difference between inheritance and polymorphism?
Signup and view all the answers
Study Notes
Abstract Class
- An abstract class is declared as such and may include abstract methods.
- It serves as a blueprint for other classes, defining structure but not allowing instantiation.
Instantiation Restrictions
- Abstract classes cannot be instantiated because they represent abstract concepts (e.g., a generic vehicle).
- Instantiation requires a concrete subclass that provides specific functionality.
Abstract Method
- An abstract method lacks implementation; it is declared with a semicolon, signifying that subclasses must provide the body.
- Example:
abstract void moveTo(double deltaX, double deltaY);
Method Implementation in Subclasses
- When subclassing an abstract class, all abstract methods must typically be implemented.
- If a subclass does not implement all abstract methods, it must also be marked as abstract.
Similarities with Interfaces
- Both abstract classes and interfaces cannot be instantiated.
- They can contain a blend of declared methods, some with and some without implementations.
Differences: Abstract Class vs Interface
-
Abstract Class:
- Can have non-static, non-final fields.
- Can define access modifiers for methods (public, protected, private).
- Can extend only one class, abstract or not.
-
Interface:
- Fields are implicitly public, static, and final.
- Methods are public; default methods can be defined.
- Can implement multiple interfaces.
Usage Scenarios
-
Abstract Class:
- Ideal for sharing code among related classes.
- Useful when expecting related classes to have common methods/fields, or require specific access modifiers.
- Allows declaration of non-static, non-final fields to manage object state.
-
Interface:
- Suitable for unrelated classes to share a contract (e.g., Comparable, Cloneable).
- Focused on defining behavior without dictating implementations.
- Enables multiple inheritance of type.
JDK Examples
-
Abstract Class:
AbstractMap
, part of the Collections Framework. -
AbstractMap Subclasses: Include
HashMap
,TreeMap
, andConcurrentHashMap
. -
Interface Examples:
Serialization
,Cloneable
, andMap
, which are implemented byHashMap
.
Implementing Interfaces
- Any class implementing an interface must provide implementations for all declared methods in that interface.
Abstract Class Implementing Interface
- An abstract class can implement an interface partially, leaving out one or more methods.
- Example structure:
-
abstract class X implements Y { /* partial implementation */ }
-
class XX extends X { /* implements remaining methods of Y */ }
-
Keyword Usage
-
super: Used to invoke an overridden method from a superclass using
super.method
.
Array Initialization
- Arrays can be initialized directly or separately:
- Direct:
int data[] = new int[] {10,20,30,40,50,60,71,80,90,91};
- Separate:
int data[]; data = new int[] {10,20,30,40,50,60,71,80,90,91};
- Direct:
Inheritance vs Polymorphism
- Inheritance is a mechanism where a new class derives properties and behaviors from an existing class, facilitating code reuse.
- Polymorphism allows for methods to be used in different ways depending on the object calling them, enhancing flexibility in programming.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Test your knowledge on abstract classes and methods in Java with this engaging flashcard quiz. Understand the core concepts behind abstract classes and the reasons we cannot instantiate them. Whether you're a beginner or refining your skills, this quiz will solidify your understanding of abstract concepts in programming.