Java

[Java] 추상클래스, 인터페이스

maribel 2019. 7. 24. 11:37

1. 메서드의 종류 - 객체 생성 유무에 따라

  • 일반 메서드 --> 객체 생성을 해야 호출이 가능
  • 정적 메서드 --> 객체 생성 없이도 호출이 가능
  • 추상 메서드 --> 메서드의 선언만 되어있는 메서드, 구현부{ } 가 없는 메서드
    • ex) public abstract void go( );

2. 추상 클래스

  • 클래스 내부에 추상 메서드가 하나라도 존재하면 추상 클래스
  • 추상 클래스를 상속받은 자식 클래스는 추상메서드를 반드시 오버라이딩 해야 함
  • 객체 생성 불가능
  • 추상 클래스 사용 목적 : 설계 목적

3. 인터페이스

  • 인터페이스 사용 목적 : 설계 목적
  • 멤버변수 --> 상수만 선언 가능, static final 생략 가능
    • ex) public static final int SU=3;
  • 메서드 --> 추상 메서드만 선언 가능, abstract 생략 가능
    • ex) public abstract 메서드명(매개변수);
  • 인터페이스를 상속받은 자식 클래스는 인터페이스에서 선언된 추상 메서드를 반드시 오버라이딩 해야 함
  • 객체 생성 불가능

4. 추상 클래스와 인터페이스의 차이점

  • 추상 클래스 : 일반메서드 작성 가능, 인터페이스 : 일반메서드 작성 불가능
  • 추상 클래스 : 단일 상속만 가능,  인터페이스 : 다중상속이 가능