`
Classes and Interfaces:
OOP is a programming paradigm that uses objects to model real-world entities and their behaviors. Java is a fully object-oriented programming language that implements OOP principles.
private
, protected
, public
).class BankAccount {
private double balance;
public void deposit(double amount) {
balance += amount;
}
public double getBalance() {
return balance;
}
}
class Animal {
void eat() {
System.out.println("This animal eats food.");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog barks.");
}
}
class Shape {
void draw() {
System.out.println("Drawing a shape");
}
}
class Circle extends Shape {
@Override
void draw() {
System.out.println("Drawing a circle");
}
}
abstract class Vehicle {
abstract void move();
}
class Car extends Vehicle {
@Override
void move() {
System.out.println("Car is moving");
}
}
A class is a blueprint or template for creating objects. It defines fields (variables) and methods (functions) to describe the behavior and state of objects.
class ClassName {
// Fields (attributes)
int id;
String name;
// Constructor
ClassName(int id, String name) {
this.id = id;
this.name = name;
}
// Methods (behaviors)
void displayInfo() {
System.out.println("ID: " + id + ", Name: " + name);
}
}
public class Main {
public static void main(String[] args) {
ClassName obj = new ClassName(1, "Java");
obj.displayInfo();
}
}
An interface in Java is a reference type that defines a set of abstract methods. It specifies what a class must do, but not how to do it.
public static final
).interface Animal {
void eat(); // Abstract method
void sleep();
}
class Dog implements Animal {
@Override
public void eat() {
System.out.println("Dog is eating");
}
@Override
public void sleep() {
System.out.println("Dog is sleeping");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat();
dog.sleep();
}
}
interface Vehicle {
void start();
default void stop() {
System.out.println("Vehicle stopped.");
}
}
class Car implements Vehicle {
@Override
public void start() {
System.out.println("Car started.");
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car();
car.start();
car.stop(); // Uses default implementation
}
}
interface Calculator {
static int add(int a, int b) {
return a + b;
}
}
public class Main {
public static void main(String[] args) {
int result = Calculator.add(5, 3);
System.out.println("Result: " + result);
}
}
Feature | Class | Interface |
---|---|---|
Instantiation | Can be instantiated (via objects). | Cannot be instantiated directly. |
Implementation | Defines both methods and their bodies. | Contains only abstract methods (pre-Java 8). |
Multiple Inheritance | Not supported directly. | Supported via multiple implemented interfaces. |
Access Modifiers | Fields and methods can have various access modifiers. | All fields are public static final . Methods are public and abstract (pre-Java 8). |