추상 클래스, 인터페이스

Xtraa·2024년 12월 20일

Java 기본 개념

목록 보기
6/7

추상 클래스

abstract class AbstractAnimal {
		public abstract void sound();
		
		public void move() {
		System.out.println("동물이 움직입니다.");
		}
}
  • 추상 메서드가 하나라도 있는 클래스는 추상 클래스로 선언해야 한다.
  • 추상 메서드는 상속 받는 자식 클래스가 반드시 오버라이딩 해서 사용해야 한다.
  • move(): 이 메서드는 추상 메서드가 아니다. 따라서 자식 클래스가 오버라이딩 하지 않아도 된다.

인터페이스

public interface InterfaceAnimal {
		//public abstract void sound();
		//public abstract void move();
		void sound();
		void move();
}
  • 인터페이스 - public abstract 키워드 생략 가능(권장)
  • 인터페이스는 다중 구현(다중 상속)을 지원한다.

인터페이스와 멤버 변수

public interface InterfaceAnimal {
		//public static final double MY_PI = 3.14;
		double MY_PI = 3.14;
}
  • 인터페이스에서 멤버 변수는 public, static, final이 모두 포함되었다고 간주(생략 권장)

인터페이스를 사용해야 하는 이유

  • 인터페이스는 반드시 이 메서드들을 구현하라는 규약을 강제
  • 이를 통해 연결된 장치가 항상 일관된 방식으로 동작하게 만든다
  • 순수 추상 클래스의 한계
    • 순수 추상 클래스를 사용하는 경우, 추후 실행 가능한 메서드(구현된 메서드)가 추가될 수 있다
    • 실행 가능한 메서드가 추가되면, 해당 클래스를 상속하는 자식 클래스에서 모든 규약을 준수하지 않을 가능성이 생깁니다.
profile
https://xtraa.notion.site/Xtraa-ed48ac432d354d01b5bf5b0da5ec94a9?pvs=4

0개의 댓글