ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA | 인터페이스와 추상 클래스
    programming/JAVA 2020. 5. 26. 23:15

     

     

     

    인터페이스 (Interface) 와 추상 클래스(Abstract Class) 


    인터페이스는 일종의 추상클래스 라고 생각할 수 있다.  즉, 추상 클래스와 비슷한 기능을 하지만 클래스가 아니다.

    추상메서드와 상수로만 이루어져있기 때문에 로직을 작성할 수 없으며 다중 상속이 가능하다. 

    * 인터페이스의 상속은 인터페이스 끼리만 가능하며 implements  키워드를 사용한다.

     

    사용 목적

    구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제한다 !

     

     

     

     

    추상 클래스는 미완성된 클래스라고 생각하자! 미완성된 클래스는 미완성된 메서드(추상 메서드)를 포함하고 있다.

    추상 메서드는 선언만되어 있고 구현이 되어있지 않은 불완전한 메서드이므로 객체로 생성되어서는 안된다.

    그렇기 때문에 추상 클래스로 선언하여(abstract) 객체생성을 금지시킨다!

     

    추상 클래스는 하나 이상의 추상 메서드를 가지며 객체를 생성할 수 없음

    하지만 슈퍼 클래스로 사용이 가능( 자식 클래스에서 상속후에 super로 호출 가능 )

     

    사용 목적

    기존 클래스에서 공통된 부분을 추상화하여 상속하는 클래스에게 구현을 강제한다.
    메서드 동작을 구현하는 것을 자식클래스로 책임을 위임한다.
    공유의 목적이 있다.

     

     

     

    인터페이스 (Interface) 추상클래스(Abstract Class)
    구현 객체의 같은 동작을 보장하기 위해 사용 추상클래스를 상속받아 기능을 이용하고 확장시키기 위해 사용
    다중 상속 가능 (implments 인터페이스 끼리) 다중 상속 불가능 (extends)
    추상 메서드만 가능 (상수+추상메서드 형태) 일반메서드 + 추상 메서드 가능
    (일반변수 + 일반메서드 + 추상메서드 형태)
    생성자와 일반변수를 가질 수 없음 생성자와 일반변수 모두 가질 수 있음
    메서드 선언만 가능 메서드의 부분적인 구현 가능
    클래스가 아님 클래스 (주로 베이스 클래스로 사용)
    클래스와 별도로 일련의 연관된 메서드를 정의 메서드를 선언하지만 모든 메서드를 선언하지 않는
    불완전하게 정의된 클래스
    서로 관련이 없는 클래스에서 공통적으로 사용하는
    방식이 필요하지만 기능을 각각 구현하고 싶을 경우 사용하면 좋음
    자식 클래스로 상속해서 더 구체적인 클래스로 만들고자 할 때
    사용하면 좋음

     

     

     

     

     

     

     

    참고: https://loustler.io/languages/oop_interface_and_abstract_class/ , https://private.tistory.com/20

    'programming > JAVA' 카테고리의 다른 글

    JAVA | AWT & Swing  (0) 2020.06.02
    JAVA | 스레드(Thread)  (0) 2020.05.30
    JAVA | 추상 클래스  (0) 2020.05.26
    JAVA | 인터페이스(Interface)  (0) 2020.05.26
    JAVA | 상속(Inheritance)  (0) 2020.05.21
Designed by Tistory.