본문 바로가기
공부/JAVA

Interface, Abstract

by 밍미 2018. 5. 31.

Interface, Abstract

 

  • Interface

    • 일종의 추상 클래스
    • 오직 추상메서드와 상수만을 멤버로 갖는다.
    • Implements 키워드를 사용해서 class에서 상속받아 사용한다.
    • 상속의 관계가 없는 클래스간 서로 공통되는 로직을 구현하여 쓸 수 있도록한다.
    • Extends는 하나의 클래스만 상속 가능하나 Interface는 다중 상속이 가능하다.
    • 스프링에서 객체와 객체의 관계를 약화시키기 위해 사용한다. - DI(Dependency Injection)
    • 객체와 객체를 직접 연결시키는 것 보다는 인터페이스를 이용해 간접 연결 시키는 것이 나중에 객체를 수정하기에 편리하다.

 

  • Abstract

    • 추상메서드를 하나 이상 가진 클래스
    • 자신의 생성자로 객체 생성 불가능
    • 하위 클래스를 참조하여 상위 클래스의 객체를 생성한다.
    • 하위 클래스를 제어하기 위해 사용된다.

 

  • 공통점

    • new 연산자로 인스턴스 생성 불가능.
    • 프로토타입만 있는 메서드를 갖는다.
    • 사용하기 위해서는 하위클래스에서 확장/구현 해야 한다.

 

  • 차이점

    • 사용하는 키워드가 다르다.
    • Abstract는 일반 메서드를 사용할 수 있지만, Interface는 메서드 선언만 가능하다.
    • Interface는 설계도만 만들어 놓은 것이라면, Abstract는 웬만큼 다 만들어 놓은 것이라고 보면 된다.

 


'공부 > JAVA' 카테고리의 다른 글

[자료구조] 선형구조  (0) 2018.06.05
정규표현식(정규식, 표현식)  (0) 2018.06.05
Overloading vs Overriding  (0) 2018.05.31
Java란?  (0) 2018.05.31
변수란?  (0) 2018.04.26

댓글