ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인터페이스 vs 추상클래스
    Java/Basics 2019. 6. 20. 10:06


    ■인터페이스


    - 비슷한 기능을 가진 클래스들의 공통점(정확하게는 공통된 메소드)을 

    추출해서 모아놓은 집합체 또는 규칙 또는 약속 또는 표준 (딱 정의내리기가 애매하다)


    - 일반 클래스와 비슷한 문법으로 작성한다. 하지만 class A -> interface A 로 쓴다. 

    그리고 static 변수를 제외한 다른 멤버 변수는 선언할 수 없고 메소드만 등록할 수 있다. 


    - 인터페이스에서 선언 가능한 메소드는 추상 메소드, default 메소드 2가지이다.

    - 추상메소드는 선언만 해놓고 내부는 구현하지 않는다. 인터페이스를 구현한 

    클래스에 그 구현을 강제시킨다.


    - default 메소드는 선언과 내부구현 모두 가능하다. (java 1.8에서 추가)

    생성하려는 메소드의 특징을 잘 파악해서, 추상메소드로 만들지 default 메소드로 

    만들 지 판단하면 된다.


    - 인터페이스를 구현한 클래스는 인터페이스에 선언된 추상 메소드들을 모두
    구현해야만 한다. 이 약속은 인터페이스를 사용하는 코드안에서 중복되거나 불필요한
    로직들을 상당수 없앨 수 있게 한다. 


    - 또한 이 다형성을 활용해, 인터페이스를 구현한 객체를 주입받아 사용할 수도 있으므로 

    코드 수정이 필요없는 프로그램을 만들 수도 있다.





    ■인터페이스 vs 추상클래스


    - 인터페이스에서 default 메소드를 사용할 수 있게 됨으로써 추상클래스가 점점 설자리를

    잃어가는 중이다. 


    - 추상클래스를 통해 다중 상속을 구현할 수 없기 때문에 추상클래스는 사용하기 꺼려지는 

    존재가 되어버리는 것 같기도 하다.


    - 하지만 일반적인 멤버변수를 선언할 수 있다는 특징은 아직 추상클래스에만 있다.

    그래서 추상클래스는 아직 쓸모가 있다.




    https://meaownworld.tistory.com/97

    'Java > Basics' 카테고리의 다른 글

    java 개발 환경 플랫폼  (0) 2020.01.25
    vm args vs prog args  (0) 2020.01.10
    직렬화 vs 역직렬화  (0) 2019.06.14
    Java의 날짜와 시간 API  (0) 2019.06.06
    자바 빌드 툴  (0) 2019.05.21

    댓글

Designed by Tistory.