Java_note06

채승현·2025년 3월 28일

추상 클래스

  1. 추상 클래스(abstract class)
  • 추상 메소드를 포함한 클래스
  • 미완성 메소드인 추상 메소드를 포함하기 때문에 객체 생성 불가

※익명 이너클래스
아래와 같이 완성시키면 추상클래스도 객체 생성 가능

public abstract class Animal {
    public abstract void cry();
}
public class AnimalMain {
    public static void main(String[] args) {
        Animal ani2 = new Animal() {
            @Override
            public void cry() {//중괄호 있으므로 메소드 완성 }
        };
    }
}
  1. 오버라이딩과 구현
  • 오버라이딩: 부모클래스의 메소드를 자식클래스에서 재정의
  • 구현: 부모클래스의 미완성 메소드를 자식클래스에서 재정의

※ 메소드 완성, 미완성 기준: 중괄호의 존재여부, 중괄호 내에 내용이 없어도 완성된 메소드

  1. 추상클래스의 필요성
  • 일반메소드는 자식클래스에서 상속 시 재정의하지 않아도 오류가 발생하지 않으므로 재정의를 놓칠 수가 있다.
  • 추상메소드는 자식이 재정의하지 않으면 에러가 발생하므로 재정의를 놓치지 않게된다.

인터페이스

추상클래스의 특수한 형태

  1. 인터페이스
  • 모든 필드는 상수(public static final)로 정의, public static final 생략 시 컴파일러가 자동으로 추가한다.
  • 모든 메소드는 추상메소드(public abstract)로 정의, public abstract 생략 시 컴파일러가 자동으로 추가한다.
  • 정적메소드(static method): 클래스 내부의 정적메소드와 사용방법이 동일하다.
  • 추상클래스의 특수한 형태이므로 마찬가지로 객체 생성이 불가능하다.
  • default 메소드는 public으로 정의한다. 필요에 의해 메소드를 추가하는 경우 추상메소드로 추가하면 구현했던 모든 클래스에 오류가 발생한다. 따라서 default 메소드를 만들어 사용한다.
  1. 인터페이스의 상속
  • 상속 시 implements 사용
  • 다중 상속 가능
    필드는 모두 상수, 메소드는 미완성이라 자식이 완성해 사용하기 때문이다...
profile
예비 개발자..(원해요)

0개의 댓글