회원가입

클래스와 인터페이스 활용

Beany 2024-10-31

ChatGPT 요약

클래스 상속과 인터페이스 구현을 함께 활용하는 예시를 통해 개념을 설명한 기술 블로그입니다. AbstractAnimal 클래스는 추상 메서드 sound()와 이동을 나타내는 메서드 move()를 제공하고, Flyable 인터페이스는 fly() 메서드를 구현해야 합니다. Dog, Bird, Chicken 클래스는 AbstractAnimal을 상속받고, Bird와 Chicken 클래스는 Flyable 인터페이스를 구현하여 다양한 동물의 행동을 구현합니다.메인 클래스에서 이들을 배열로 관리하고, 각 동물의 소리와 이동을 출력하는 예시가 포함되어 있습니다.

클래스와 인터페이스 활용


이번에는 클래스 상속인터페이스 구현을 함께 사용하는 예를 알아보자.

  • AbstractAnimal 추상 클래스다.
    • sound(): 동물의 소리를 내기 위한 sound() 추상 메서드를 제공한다.
    • move(): 동물의 이동을 표현하기 위한 메서드이다. 이 메서드는 추상 메서드가 아니다. 상속을 목적으로 사용된다.
  • Flyable 인터페이스이다.
    • Bird, Chicken 은 날 수 있는 동물이다. fly() 메서드를 구현해야 한다.

 

package poly.ex7;

public abstract class AbstractAnimal {
    public abstract void sound();
    public void move() {
        System.out.println("이동");
    };
}
package poly.ex7;

public interface Flyable {
    void fly();
}
package poly.ex7;

public class Dog extends AbstractAnimal {
    @Override
    public void sound() {
        System.out.println("멍멍");
    }

    @Override
    public void move() {
        System.out.println("강아지 이동");
    }
}
package poly.ex7;

public class Bird extends AbstractAnimal implements Flyable{
    @Override
    public void sound() {
        System.out.println("짹짹");
    }

    @Override
    public void fly() {
        System.out.println("날다");
    }
}
package poly.ex7;

public class Chicken extends AbstractAnimal implements Flyable {
    @Override
    public void sound() {
        System.out.println("꼬끼오");
    }

    @Override
    public void fly() {
        System.out.println("날다");
    }
}
package poly.ex7;

public class AbstractMain {
    public static void main(String[] args) {
        AbstractAnimal[] animals = {new Dog(), new Bird(), new Chicken()};

        for (AbstractAnimal animal : animals) {
            animal.sound();
            animal.move();
        }
    }
}
멍멍
강아지 이동
짹짹
이동
꼬끼오
이동

 

0 0
JAVA
이 공간은 개인 공부를 통해 얻은 정보를 체계적으로 정리하고 공유하는 곳입니다. 학습한 내용, 발견한 지식, 그리고 문제 해결 방법 등을 기록하여 나만의 학습 자료를 구축하고, 필요할 때 쉽게 참고할 수 있는 유용한 자원으로 활용할 수 있도록 합니다.
Yesterday: 456
Today: 145