본문 바로가기
조회 수 3663 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

http://kiringun.egloos.com/658998


1) interface


인터페이스는 추상화 클래스입니다. 단지 abstract보다 추상화 정도가 더 높습니다.


일종의 뼈대만을 가지고 있는 클래스입니다.


나머지 살에 해당하는 부분은 implements 로 상속받은 자식 클래스에서 완성시켜 사용합니다.


인터페이스를 상속받으면 추상화된 메소드중 자식 클래스에서 필요한 메소드만 오버라이딩하여 완성시켜 사용할 수 있습니다.


인터페이스의 이용에 따른 장점은 선언과 구현이 분리되어 있기 때문에 독립적인 프로그래밍이 가능하고, 이를 이용한 개발시간도 단축 시킬 수 있습니다. 또한 뼈대를 제공하는 클래스이므로, 표준화가 가능하며, 인터페이스를 통해 전혀 연관이 없는 클래스간을 결합해 줄 수 있습니다.



2) Implements


인터페이스를 상속받을 때 사용합니다. Extends와는 다르게 여러개의 클래스를 상속받을 수 있습니다



3) abstract


추상화 클래스나 메소드를 선언할 때 사용됩니다.  추상화는 아직 미완성된 클래스나 메소드를 뜻합니다. 클래스 내의 하나라도 추상화 메소드나 있을 경우 이는 추상 클래스가 됩니다.


추상화 클래스는 반드시 상속으로서 사용이 가능합니다. 추상화 클래스가 부모가 되고, 미완성된 부분을 자식 클래스에서 완성시켜 사용됩니다.


추상화 클래스를 사용하는 이유는 공통되는 기능이 필요하지만, 약간의 부분이 자식 클래스에서 달라질 경우 사용됩니다. 여러명의 자식 클래스에서 공통으로 수행되는 부분은 추상화 클래스에서 완성을 해주고, 나머지 자식 클래스마다 개별적으로 동작해야 하는 경의 부분만 추상화 메소드로 선언하여, 이를 자식 클래스에서 완성하여 자식에게 필요한 동작을 하도록 해주는 것입니다.


주의할 점은 자식클래스에서 추상화 클래스의 미완성된 모든 메소드를 완성시켜야 합니다.



4) extends


특정 클래스를 상속 받을 때 사용합니다. 상속은 부모와 자식간의 관계와 같습니다. 상속되어지는 것은 부모가 되는 것이고, 상속 받는 것은 자식이 됩니다. 변수나 메소드의 포함관계는 자식 클래스가 부모 클래스보다 많습니다. 즉 자식 클래스가 부모 클래스를 포함하게 됩니다. 상속의 장점은 부모 클래스가 가지고 있는 메소드나 변수 등을 자식 클래스에서 특별한 선언 없이 사용할 수 있다는 점입니다. 또한 필요한 부분만 자식 클래스에서 사용하거나 오버라이딩이 가능하다는 점입니다.


한가지 주의할 점은 상속일 때 부모 클래스는 반드시 하나뿐입니다. 하지만 부모클래스가 여러개의 자식 클래스를 갖는 것은 가능합니다.



5) 차이점


설계도를 예를 들면 extends는 완성된 설계도를 가져와 제품을 만드는 것입니다. Abstract는 아직 완성되지 않은 설계도 입니다. 기본적인 기능과 어느 정도의 기능이 만들어져 있지만, 제품을 생산하기 위해서는 미처 완성되지 못한 부분을 자신의 기호에 맞게 완성해서 제품을 만들어야 하는 것입니다. Interface는 기본 설계도입니다. 설계도에 이 제품은 어떤 제품이다 정도밖에 없습니다. 제품을 생산하려면 나머지 설계부분을 만들어야 합니다. Abstract와는 다르게 대충 만든 설계도로 제품을 만들수도 있고, 완벽하게 완성된 설계도로 제품을 만들수도 있습니다



List of Articles
번호 제목 글쓴이 날짜 조회 수
21 Cocoa Programming 정리 08 - NSArrayController file Hojung 2013.02.25 5317
20 Cocoa Programming 정리 07 - Key-Value Coding 과 Key-Value Observing file Hojung 2013.02.20 4457
19 Cocoa Programming 정리 06 - 헬퍼 객체 file Hojung 2013.02.19 6777
18 Cocoa Programming 정리 05 - 타겟(Target)과 액션(Action) file Hojung 2013.02.14 5753
17 Cocoa Programming 정리 04 - 메모리 관리 file Hojung 2013.02.13 5602
16 Cocoa Programming 정리 03 - Objective-C file Hojung 2013.02.08 5384
15 Cocoa Programming 정리 02 - 시작하기 file Hojung 2013.02.05 7970
14 Cocoa Programming 정리 01 - Cocoa란? Hojung 2013.02.05 4276
13 객체 변수 선언시 @private 사용 Hojung 2012.09.18 3707
12 테스트 코드 작성 Hojung 2012.08.22 3434
11 NSString 객체의 생성과 변환 Hojung 2012.08.22 4459
10 클래스 프로퍼티 설정 Hojung 2012.08.22 3488
9 클래스와 객체 - 1 Hojung 2012.08.22 3560
8 Interface and Implementation Hojung 2012.08.22 3313
» Extends vs Implements의 개념과 차이점 - 2 Hojung 2012.08.22 3663
6 Extends vs Implements의 개념과 차이점 - 1 Hojung 2012.08.22 4252
5 포인터 Hojung 2012.08.22 3586
4 조건문 및 순환문 Hojung 2012.08.22 3722
3 변수형 및 객체형 Hojung 2012.08.22 3696
2 hello world Hojung 2012.08.22 3510
Board Pagination ‹ Prev 1 2 Next ›
/ 2

Designed by sketchbooks.co.kr / sketchbook5 board skin

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5