A private method in an interface can hold shared logic that several default methods call, without exposing that helper as part of the interface's public contract.
interface Greeter {
private String base() { return "Hello"; }
default String formal(String name) { return base() + ", " + name + "."; }
default String casual(String name) { return base() + " " + name + "!"; }
}
class EnglishGreeter implements Greeter {}
Greeter g = new EnglishGreeter();
System.out.println(g.formal("Ms. Lee"));
System.out.println(g.casual("Sam"));
Hello, Ms. Lee.
Hello Sam!
Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.
Published 2026-09-27