인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

송유승님의 프로필 이미지
송유승

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

Interface (인터페이스)

interface, abstract 차이에 대한 질문

작성

·

395

0

제가 인터페이스와 abstract의 차이가 어려워서 

인터넷을 찾아보던 중 다음과 같이 차이를 말해둔 것이 있던데 그 의미를 모르겠습니다. 

인터페이스 : 구현이 아닌 서명만 가질 수 있다.

abstract : 구현을 제공할 수 있다.

이 차이와 더불어서

"구현" 이라는 말도 정확히 무엇을 뜻하는지 헷갈립니다.

도와주세요..

답변 4

3

송유승님의 프로필 이미지
송유승
질문자

추상 클래스 내의 비추상적인 부분은 물려주니까

파생클래스에서 그냥 쓸수 있고, 추상적인 부분은 따로 파생클래스 내부에서 구현해서 써야한다는 의미로 받아들이면 될까요?

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

"구현"이라 함은 실제 함수 내용을 의미합니다.

위의 예제에서 abstract class인 ShoutBase는
Shout의 구현부까지 만들어서 물려줄 수 있지만,
IShouter 인터페이스는 Shout()이라는 함수가 있다는 것만 의미하지
그 함수의 내용은 알아서 채워야 합니다.

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 맞습니다.

반면 interface는 아예 구현 자체가 막혀있습니다.

0

송유승님의 프로필 이미지
송유승
질문자

감사합니다. 모호했던 부분이 확실해졌습니다.

송유승님의 프로필 이미지
송유승

작성한 질문수

질문하기