dongvelop.velog
로그인
dongvelop.velog
로그인
추상클래스와 인터페이스의 차이
이동엽
·
2022년 3월 2일
팔로우
0
Java
인터페이스
인터페이스 역할
추상클래스
추상클래스 역할
추상클래스와 인터페이스 차이
0
java
목록 보기
4/19
💡 추상클래스와 인터페이스의 정의
추상 클래스란?
자바에서는 하나 이상의 추상 메소드를 포함하는 클래스를 가리켜
추상 클래스(abstract class)
라고 한다.
이러한 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인
다형성을 가지는 메소드의 집합을 정의
할 수 있도록 해준다.
주로 실체 간에 공통되는 특성을 추출한 것을 말하고, 객체를 직접 생성할 수 있는 클래스가
실체 클래스
라면 이 들의 공통적인 특성을 추출해서 선언한 것을
추상 클래스
라고 한다.
인터페이스란?
자바에서
인터페이스는 객체의 사용 방법을 정의한 타입
이다.
인터페이스는
객체의 교환성을 높여주기 때문에 다형성을 구현
하는 매우 중요한 역할을 한다.
인터페이스는
개발 코드와 객체가 서로 통신하는 접점 역할
을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출한다.
중간에 인터페이스를 두는 이유는
개발 코드를 수정하지 않고,사용하는 객체를 변경하기 위함
임.
💡 추상클래스와 인터페이스의 적절한 용도
추상클래스가 적절한 사용 경우
관련성이 높은 클래스 간에 코드를 공유
하고 싶은 경우
추상클래스를 상속받은 클래스들이 공통으로 가지는 메소드와 필드가 많거나, public 이외의 접근제어자(protected, private) 사용이 필요한 경우
non-static, non-final 필드 선언이 필요한 경우. 즉, 각 인스턴스에서 state 변경을 위한 메소드를 선언할 수 있다.
인터페이스가 적절한 사용 경우
서로
관련성이 없는 클래스
들이 인터페이스를 구현하게 되는 경우
특정 데이터 타입의 행동을 명시하고 싶은데, 어디서 그 행동이 구현되는지는 신경쓰지 않는 경우
다중상속을 허용
하고 싶은 경우
인터페이스
추상클래스
다중 상속 가능
다중 상속 불가능
추상 메소드만 사용 가능
일반 메소드와 추상 메소드 모두 가능
상속시 모든 메소드를 구현해야함
상속시 추상 메소드만 구현해도 됨
여러 다중 인터페이스를 구현 가능
클래스이므로 다중 상속이 불가능
속도면에서 추상클래스보다 느림
속도면에서 인터페이스보다 빠름
이동엽
백엔드 개발자로 등 따숩고 배 부르게 되는 그 날까지
팔로우
이전 포스트
중첩 for문과 향상된 for문을 이용한 간단한 예제 풀이
다음 포스트
[Java] split()과 StringTokenizer의 차이
0개의 댓글
댓글 작성