728x90
반응형

추상 클래스 

미구현 추상 메소드를 한 개 이상가지며, 자식 클래스에서 해당 추상 메소드를 반드시 구현하도록 강제하는 문법

상속받은 클래스는 추상 메소드를 구현하지 않아도, import할 때까지 에러는 발생하지 않으나 객체를 생성할 시 에러가 발생

 

추상 클래스의 장점

장점 설명
중복 코드 제거 상속을 통해 중복 코드를 줄일 수 있음
그룹화 자식 클래스를 그룹화가 가능
비 실존 객체 생성차단 비 실존 객체의 직접 생성을 차단하여 실수를 사전 방지

 


 

인터페이스 

자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 문법

인터페이스는 일종의 추상 클래스임

오직 추상 메소드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않음

 


 

추상 클래스와 인터페이스의 공통점

추상 클래스와 인터페이스는 선언만 있고 구현 내용이 없는 클래스임(선언부만 있고 구현부는 없음)

자기 자신이 new를 해서 객체를 생성할 수 없으며, 추상 클래스를 extends 받거나 interface를 implements한 자식만이 객체를 생성할 수 있으며 상속받은 자식이 구현을 반드시 하도록 해야 할 때 사용함

JAVA에서는 타입이 지정되었기 때문에 선언된 타입과 자식의 타입이 같아야 함

 


 

추상 클래스와 인터페이스의 차이점

상속을 받음에도 불구하고 클래스에선 상속(Inheritance)이라고 쓰지만, 인터페이스는 구현(Implements)이라고 씀

추상 클래스를 상속받는 클래스는 반드시 추상 메소드를 구현해야 하며 필수적으로 구현해야할 메소드가 있을 때 추상 클래스를 씀

인터페이스를 상속받는 클래스에서는 반드시 인터페이스에 있는 메소드를 다 구현해야 함

반응형
복사했습니다!