본문 바로가기
Programming

JAVA 객체지향 프로그래밍 (OOP)

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 11. 17.
반응형

📘 객체지형 프로그래밍 (OOP)

자바(Java)는 객체지형 언어로, 코드의 재사용성과 유연성을 높이기 위해 객체지형 개념(OOP)을 활용합니다. 이번 강의에서는 상속, 오버라이딩, 다형성, 추사 클래스, 인터페이스까지 정리합니다.


📌 목차

  1. 상속과 재사용
  2. 오버라이딩과 다형성
  3. 추사 클래스 (abstract class)
  4. 인터페이스 (interface)

🔹 1. 상속과 재사용

상속(Inheritance)은 기존 클래스의 기능을 복잡하거나, 특화할 수 있게 해 주며, 재사용성과 반복 작업 수고를 감소합니다.

// 부모 클래스
class Animal {
    void speak() {
        System.out.println("Animal makes a sound");
    }
}

// 자식 클래스
class Dog extends Animal {
    void bark() {
        System.out.println("Woof!");
    }
}

// 사용
Dog dog = new Dog();
dog.speak();  // 부모 메서드 사용
dog.bark();   // 자식 메서드 사용

이때 객체가 다른 클래스의 기능을 가지며, 객체의 바로성을 넘겨 바이너스 결합성을 높이는 것이 OOP의 가장 강력한 점입니다.


🔹 2. 오버라이딩과 다형성

오버라이딩(Overriding)은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것입니다.

다형성(Polymorphism)은 부모 타입의 변수가 자식 객체를 저장할 수 있게 하여 유연한 구조를 가진 코드를 구현합니다.

class Animal {
    void speak() {
        System.out.println("Animal sound");
    }
}

class Cat extends Animal {
    @Override
    void speak() {
        System.out.println("Meow");
    }
}

Animal a = new Cat();
a.speak();  // 출력: Meow (Cat의 메서드가 실행됨)

다형성은 하나의 메서드 호출로 다른 객체의 객체 기능을 실행할 수 있게 해서 개발자가 양성적으로 코드를 목\uud45c로 가지고 구현할 수 있게 합니다.


🔹 3. 추사 클래스 (abstract class)

abstract 클래스는 실제 객체를 생성할 수 없고, 상속 클래스에서 그 구현을 강제합니다.

abstract class Shape {
    abstract void draw();  // 추사 메서드
}

class Circle extends Shape {
    void draw() {
        System.out.println("Draw a Circle");
    }
}

추사 클래스는 정수 클래스와 인터페이스 사이에 위치하며, 목표를 가지는 구조로 해석할 수 있습니다.


🔹 4. 인터페이스 (interface)

interface100%가 추사화된 구조로, 다중 구현도 가능하고 개체의 기능을 약속합니다.

interface Animal {
    void eat();
}

class Bird implements Animal {
    public void eat() {
        System.out.println("Bird eats grains");
    }
}

인터페이스는 추사 클래스와 다른 점은 여러 객체가 같은 인터페이스를 구현할 수 있게 하고, 사용가능한 면에서 그 개발 논리를 효과적으로 구축할 수 있게 해 줍니다.


반응형

'Programming' 카테고리의 다른 글

JAVA 컬렉션 프레임워크  (59) 2025.11.19
JAVA 예외 처리  (59) 2025.11.18
JAVA 패키지와 접근제한자  (38) 2025.11.16
JAVA 클래스와 객체  (45) 2025.11.15
JAVA 메서드와 매개변수  (43) 2025.11.14