Why Java needs interfaces

In this lesson, we'll talk about an important concept in Java: interfaces. You're probably familiar with the word. For example, interfaces are part of most computer programs and games. In a broad sense, an interface is a kind of "control panel" that connects two interacting parties. See the lesson to learn what exactly this word means in Java.

Useful materials

As the author of this short series of articles writes, these materials will benefit those who have figured out how to create interfaces, understand how interface inheritance works, and have implemented several examples, but still do not understand the why. The material below addresses the "application" of interfaces:

The difference between abstract classes and interfaces

In this lesson, you'll learn how abstract classes differ from interfaces, and you'll see examples of common abstract classes.

The difference between an abstract class and an interface is important. You will be asked about the difference between these concepts in 90% of your future job interviews. So be sure you understand what you read.

10 questions about abstract classes and interfaces from Java job interviews

In this article, we will look at the most common questions related to abstract classes and interfaces that are asked in job interviews for Java software development positions at various levels. Most of them are clear to even novice Java programmers. They are mainly open-ended questions, but some of them can be tricky, such as explaining the difference between abstract classes and interfaces in Java, or explaining when to prefer an abstract class over an interface.

undefined
8
Task
Java Core, level 4, lesson 8
Locked
Bridges
Create a Bridge interface with a getCarsCount() method that counts cars. Write WaterBridge and SuspensionBridge classes that implement this interface. The getCarsCount() method must return any constant int value. This value must be different for different classes.
undefined
8
Task
Java Core, level 4, lesson 8
Locked
Wine tasting
30% of the robots on Planet Soto have an alcohol dependence, which causes anxiety among the remaining 70%. More precisely, the 30% are addicted to alcohol-related programs. We are talking about robots, after all. But now it's your chance to do the same!
undefined
16
Task
Java Core, level 4, lesson 8
Locked
User, loser, coder and programmer
1. Enter a few strings (keys) from the keyboard [in a loop]. The following strings (keys) are allowed: "user", "loser", "coder", "programmer". Stop reading in strings after reading in any string that does not match one of the above. 2. For each entered string: 2.1. Create the appropriate object [see Person.java], e.g.
undefined
4
Task
Java Core, level 4, lesson 8
Locked
Implement the printMainInfo method
Write an implementation of the printMainInfo method: * If a Drawable object is passed to the method, call the draw method on the object. * If a Movable object is passed to the method, call the move method on the object.
undefined
8
Task
Java Core, level 4, lesson 8
Locked
Computer
We're using programming and OOP tools to build a new computer for work. We won't just have a Computer class. We'll also have a CompItem interface that will be implemented by the Computer class.
undefined
16
Task
Java Core, level 4, lesson 8
Locked
MovieFactory
You have the code for a MovieFactory program. Figure out what it does. Add Cartoon and Thriller classes. Understand how we get a SoapOpera object using the key "soapOpera".
undefined
8
Task
Java Core, level 4, lesson 8
Locked
Janitorial services
Let's create a virtual janitorial business with a cleanAllApartments method for all apartment types and individual methods for cleaning one-, two- and three-bedroom apartments.
undefined
8
Task
Java Core, level 4, lesson 8
Locked
Fixing bugs
Think about how CanSwim and CanWalk interfaces relate to the SeaCreature class. Create the correct inheritance relationship between the interfaces and the SeaCreature class. And how might the Orca, Whale, and RiverOtter classes relate to the SeaCreature class?
undefined
16
Task
Java Core, level 4, lesson 8
Locked
Currencies
Let's do some work with money. Your job is to expand the functionality of a program that can manipulate currencies. For the specific currencies, see the task conditions. To start, create a private double field amount in the abstract Money class...
undefined
8
Task
Java Core, level 4, lesson 8
Locked
Fix four mistakes
This code has four bugs, and your task is... Yeah, you already know what your task is. First of all, you need to figure out what the code does. Create something and fix the bugs that were written before you got involved with the code (as well as any that appear after you get involved).
undefined
8
Task
Java Core, level 4, lesson 8
Locked
Exception invasion
In reality, there are oceans of exceptions in programs, and you'll eventually get used to them. You can start right now: populate the list exceptions with ten (10) different exceptions. The first exception is already implemented in the initExceptions method.
undefined
16
Task
Java Core, level 4, lesson 8
Locked
GCD
We continue our attempts to enter the cosmic space belonging to Planet Linear Chaos. Here's another task taken from a border-crossing interview, for young arrivals: find the greatest common divisor (GCD) of two positive integers.
undefined
8
Task
Java Core, level 4, lesson 8
Locked
Singleton
A class implements the Singleton pattern if it lets you create just one object of its type. You need to create a Singleton class in a separate file. Add a static getInstance method that returns the same object any time it is called. Think about how you can prevent the creation of additional instances of this class.