extends, implements의 차이란?

쓰리원·2022년 6월 23일
0

java 개념

목록 보기
10/10
post-thumbnail

extends와 implements는 Java와 같은 객체 지향 프로그래밍 언어에서 주로 사용되는 키워드입니다. 두 키워드는 클래스가 다른 클래스 또는 인터페이스와 어떤 관계를 가지고 있는지를 정의합니다.

1. extends

extends 키워드는 클래스가 다른 클래스를 상속받을 때 사용됩니다. 즉, 한 클래스가 다른 클래스의 속성과 메서드를 물려받기 위해 extends 키워드를 사용합니다. 이를 통해 코드의 재사용성이 향상되고, 코드의 중복을 줄일 수 있습니다. 자바에서는 단일 상속만 지원하기 때문에 한 클래스는 한 번에 하나의 클래스만 상속받을 수 있습니다.

public class ChildClass extends ParentClass {
    // ChildClass now inherits the methods and fields of ParentClass
}

2. extends 의 예

우리는 "동물"이라는 기본 클래스를 가지고 있습니다. 그리고 "고양이"라는 클래스가 "동물" 클래스를 상속받도록 만들 수 있습니다. 이 경우, "동물" 클래스에 정의된 모든 속성과 메서드는 "고양이" 클래스에서도 사용할 수 있습니다.

class Animal {
    void eat() {
        System.out.println("Eating...");
    }
}

class Cat extends Animal {
    void meow() {
        System.out.println("Meowing...");
    }
}

public class Test {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.eat(); // 메서드 from Animal class
        cat.meow(); // 메서드 from Cat class
    }
}

이 코드를 실행하면, "Eating..."과 "Meowing..."이 출력됩니다. eat() 메서드는 Animal 클래스에서 상속받은 것이고, meow() 메서드는 Cat 클래스에서 정의한 것입니다.

3. implements

implements 키워드는 클래스가 인터페이스를 구현할 때 사용됩니다. 인터페이스는 메서드 선언을 포함하지만 구현 내용은 없는 추상 타입입니다. implements 키워드를 사용하면 클래스는 인터페이스에서 선언된 모든 메서드를 구현해야 합니다. 자바에서는 다중 인터페이스 구현이 가능하여, 클래스는 여러 인터페이스를 구현할 수 있습니다.

public class SomeClass implements SomeInterface {
    // SomeClass must implement all methods declared in SomeInterface
}

4. implements 의 예

"비행 가능한"이라는 인터페이스가 있습니다. "새" 클래스는 이 인터페이스를 구현할 수 있습니다. 이 경우, "새" 클래스는 "비행 가능한" 인터페이스에서 선언된 모든 메서드를 구현해야 합니다.

interface Flyable {
    void fly();
}

class Bird implements Flyable {
    public void fly() {
        System.out.println("Flying...");
    }
}

public class Test {
    public static void main(String[] args) {
        Bird bird = new Bird();
        bird.fly(); // 메서드 from Flyable interface
    }
}

이 코드를 실행하면, "Flying..."이 출력됩니다. fly() 메서드는 Flyable 인터페이스에서 정의된 것을 Bird 클래스가 구현한 것입니다.

이 두 키워드는 클래스와 클래스, 클래스와 인터페이스 간의 관계를 정의하는 데 중요한 역할을 합니다. 이를 통해 객체 지향 프로그래밍의 주요 특징인 상속성과 다형성을 실현할 수 있습니다.

profile
가장 아름다운 정답은 서로의 협업안에 있다.

0개의 댓글