Fading Coder

One Final Commit for the Last Sprint

Home > Tech > Content

Understanding Java Abstract Classes, Final Keyword, Static Members, and Interfaces

Tech Apr 24 13

Abstract Classes in Java

Abstract classes serve as base classes that cannot be instantiated. They often contain abstract methods that must be implemented by subclasses.

// Abstract base class
public abstract class Creature {
    // Abstract method requiring implementation
    public abstract void consume();
}

// Concrete subclass
public class Feline extends Creature {
    @Override
    public void consume() {
        System.out.println("Cat eats fish");
    }
}

// Another concrete subclass
public class Canine extends Creature {
    @Override
    public void consume() {
        System.out.println("Dog eats meat");
    }
}

The Final Keyword

The final modifier prevents modification of classes, methods, or variables.

Final Classes

public final class ImmutableClass {
    // Cannot be extended
}

Final Methods

public class Parent {
    public final void lockedMethod() {
        // Cannot be overridden
    }
}

Final Variables

public class Constants {
    // Final instance variable
    private final int MAX_VALUE = 100;
    
    // Final static variable
    public static final double PI = 3.14159;
}

Static Members

Static members belong to the class rather than insatnces.

Static Fields

public class Employee {
    private String name;
    public static String company = "TechCorp";
    
    public void displayInfo() {
        System.out.println(name + " works at " + company);
    }
}

Static Methods

public class MathUtils {
    public static int square(int num) {
        return num * num;
    }
}

Interfaces in Java

Interfacse define contracts that implementing classes must follow.

Basic Interface

public interface Connectable {
    void establishConnection();
    void terminateConnection();
}

// Concrete implementation
public class Printer implements Connectable {
    @Override
    public void establishConnection() {
        System.out.println("Printer connected");
    }
    
    @Override
    public void terminateConnection() {
        System.out.println("Printer disconnected");
    }
}

Interface Features

public interface NetworkDevice {
    // Constant field
    int MAX_CONNECTIONS = 8;
    
    // Abstract method
    void transmitData();
    
    // Default method (Java 8+)
    default void logStatus() {
        System.out.println("Device operational");
    }
    
    // Static method (Java 8+)
    static void displayProtocol() {
        System.out.println("TCP/IP");
    }
}

Related Articles

Understanding Strong and Weak References in Java

Strong References Strong reference are the most prevalent type of object referencing in Java. When an object has a strong reference pointing to it, the garbage collector will not reclaim its memory. F...

Comprehensive Guide to SSTI Explained with Payload Bypass Techniques

Introduction Server-Side Template Injection (SSTI) is a vulnerability in web applications where user input is improper handled within the template engine and executed on the server. This exploit can r...

Implement Image Upload Functionality for Django Integrated TinyMCE Editor

Django’s Admin panel is highly user-friendly, and pairing it with TinyMCE, an effective rich text editor, simplifies content management significantly. Combining the two is particular useful for bloggi...

Leave a Comment

Anonymous

◎Feel free to join the discussion and share your thoughts.