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

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

http://foreverstudy.tistory.com/2


-----------------------------------------------

:: implements - interface 상속

:: extends - 일반 클래스 상속

                 abstract 클래스 상속

-----------------------------------------------


-----------------------------------------------

:: 상속이란?

부모가 부자면, 자식이 부모로부터 상속을 받아 부자가 된다!!

즉, 부모로부터 그들의 기능을 빌려 쓴다라고 생각하면 되겠다.

--------------------------------------------------------


--------------------------------------------------------

:: 구현상속 (interface) - 조언자로 부터 상속

------------------------------------------------

public interface testInterface {

public static int num = 8;


public void func1();

}

class childclass2 implements testInterface { 


@Override

public void func1() {

                        System.out.println("Class Test1");

}

1. interface는 class 처럼 객체를 생성하여 사용하는 것이 불가능하다.

그리하여 자식 클래스를 만들어 implements 해준다.

그런데 이 때 중요한 것은 정의된 메소드 모두 @Override 해주어야 한다는 것이다.

                                ※ Override는 관련 카테고리를 참조


2. 그리고 나서 가져다 쓰는 것은 implements된 자식 클래스를

사용하고자 하는 클래스에서 객체 생성하여 사용하면 되겠다.

                                                    ※ 객체 생성과 클래스 생성은 명확히 다르다!


3. implements를 통하여 여러개의 interface를 여러개 상속이 가능하므로

extends의  단일상속만 가능한 단점을 개선할 수 있다.


------------------------------------------------------

:: 순수상속 (extends) - 부모로부터의 상속

------------------------------------------------

public class testExtends {

                 public void func1() {

                        System.out.println("func1"); }

         }

class childclass1 extends testExtends{ 

public void func1() {

System.out.println("fun1.");

}


------------------------------------------------

:: Interface와 Abstract

------------------------------------------------

※공통점

1. 그 자체가 instance화 될수가 없다. (객체가 생성할 수 없다.)


2. Property만 있고 Body가 없는 메소드를 맴버함수로 가진다.

public interface TestInterface {

   public static int num = 8;


   public void func1();

   public void func2();

}

public abstract class TestAbstract {

   public abstract void func1() ;

   public void func2() {

      System.out.println("func2");

   }

}


3. interface와 abstract클래스를 사용하려면 위 클래스를 하위 클래스에서 

상속받아서, 새로운 클래스를 생성하여 instance화 할 수 있다.


------------------------------------------------

※차이점

1. 가질 수 있는 메소드의 종류가 다르다.

abstract - '일반 메소드' + 'Property만 있고 Body가 없는 메소드'

interface - 'Property만 있고 Body가 없는 메소드'


2. 상속 키워드가 다르다.

abstract - extends

interface - implements


3. 다중상속 유무

abstract - 불가능

interface - 가능


4. 시작 키워드가 다르다

abstract - abstract class

interface - interface

------------------------------------------------


추상 메소드 ( abstract class a() {}; )

추상메소드는 추상 클래스(abstract class)에서만 사용할 수 있다.


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

Designed by sketchbooks.co.kr / sketchbook5 board skin

나눔글꼴 설치 안내


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

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

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5