Animal.
java
public abstract class Animal {
// Abstract method (no implementation)
abstract void makeSound();
// Concrete method
void sleep() {
System.out.println("Zzzz...");
Dog.java
public class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Woof! Woof!");
Cat.java
public class Cat extends Animal {
@Override
void makeSound() {
System.out.println("Meow!");
=====================================================================================
AbstractExample.java – Main
public class AbstractExample {
public static void main(String[] args) {
Dog myDog = new Dog();
Cat myCat = new Cat();
// Invoking methods
myDog.makeSound();
myDog.sleep();
myCat.makeSound();
myCat.sleep();
Output