이제는 사용하지 않는 공부방/Java

추상클래스와 인터페이스

환상상상속상 2020. 3. 25. 15:28

추상클래스의 목적은 공통적인 기능을 가진 객체들의 추상화다

 

추상클래스를 이용하면 각 객체마다 중복하여 메소드를 적을 필요성을 덜어준다. 추상화 및 상속이 목적이다.

인터페이스는 인터페이스 내의 메소드를 구현하도록 하는 것에 초점을 맞춘다. = 특정 메소드가 반드시 존재하도록 강요 = 구현 객체가 같은동작을 함.

 

추상클래스는 객체를 생성하지못한다. 대신 클래스를 추상화한다. 클래스는 객체를 생성하는 틀이다.

 

'이러이러한 메소드를 쓸 것이다.' 인터페이스에 선언을 해놓고, 가져다가 반드시 선언된 그대로 모두 구현하면 되는게 인터페이스이고,    

 

이러이러한 메소드가 있지만 가져다 쓰거나 오버라이드 하거나, abstract가 붙은 메소드는 반드시 구현하면 되는게 abstract class이다.

 

 

다시!

 

 

인터페이스는 ! 메소드를 꼭 쓰게 하는 거다! 자동차 하이패스처럼 하이패스는 다 다르지만 반드시 필요한 통과메소드를 포함시킨다.(따형성)

 

 

추상클래스는 상속! 이 목적이다 버전1(수퍼클래스)에서 버전2로 갈때 더 많은 기능이 추가되고 기능이 수정되기도 한다. 혹은 어미고양이(수퍼클래스)가 새끼고양이를 낳을때!