[C#] 인터페이스, 추상클래스, 클래스

Programming/.NET Programming 2009. 5. 31. 05:11

인터페이스, 추상클래스, 클래스 용어 정리

인터페이스 : 가장 기본적으로 가질 수 있는 공통 기능을 포함하고 있는 것
                이것을 일반 클래스에 여러개의 상속해서 사용
---> 팀프로젝트에서 주로 사용, 필요한 함수들을 미리 선언하고, 여러 부분으로 나눠서 각각 따로 구현하니까 자신이 구현하는 부분이 아닌 나머지 부분은 구현되있다고 (상속을 받는다거나) 가정하고 코딩

추상클래스 : 비슷하거나 같은 기능을 포함, 이름은 같고, 하는 일은 비슷하거나 같지만 구현 내용(방식)이 다를 때 사용

클래스
: 가장 일반적인 클래스를 말하며, 인터페이스나 추상클래스로부터 상속받은 뒤 추가적인 기능을 구현하여 각각의 새로운 객체로 만들 떄 사용
---> class안에 class를 선언할 수 있지만, methode안에는 class를 선언할 수 없다.


인터페이스, 추상클래스, 클래스의 특징

인터페이스 : method의 원형만 선언할 수 있음
1. 변수 선언 불가능
2. 함수 정의 불가능
3. 함수 원형 선언 가능

추상클래스 : 추상 method를 가질 수 있는 클래스, 객체 가질 수 없음 (class 생성 불가)
1. 변수 선언 가능
2. 함수 정의 가능
3. 함수 원형만 선언 가능

클래스 : 가장 일반적인 Class
1. 변수 선언 가능
2. 함수 정의 가능
3. 함수 원형만 선언은 불가능, 정의도 해줘야 함

상속 관계
1. 인터페이스 → 인터페이스 (가능)
2. 인터페이스 → 추상클래스 (가능)
3. 인터페이스 → 일반클래스 (가능)
4. 추상클래스 → 일반클래스 (가능) : 추상함수 정의를 해야함
5. 추상클래스 → 추상클래스 (가능)
6. 일반클래스 → 추상클래스 (가능)
7. 일반클래스 → 일반클래스 (가능)
8. 추상클래스 → 인터페이스 (불가능)
9. 일반클래스 → 인터페이스 (불가능)
 


인터페이스, 추상클래스, 클래스 예제

using System;


namespace Study

{

    /// <summary>

    /// 인터페이스

    /// </summary>

    interface 인터페이스

    {

        // int a; // 변수 선언 X

        // void test(){}; // 함수 정의 X

        void Test1(); // 함수 선언만 가능

    }

 

    /// <summary>

    /// 추상클래스

    /// </summary>

    abstract class 추상클래스

    {

        int a; // 변수 선언 O

        void Test1() // 함수 정의, 선언 O

        {

            a++;

        }

        public abstract void Test2(); // 추상함수(선언만 하는 함수)

    }

 

    /// <summary>

    /// 일반클래스

    /// </summary>

    class 추상클래스일반클래스 // 추상클래스로부터 상속받음

    {

        public static void Main(string[] args)

        {

        }

        public override void Test2() // 추상함수를 override해 줌

        {

            throw new NotImplementedException();

        }

    }

}



'Programming > .NET Programming' 카테고리의 다른 글

[C#] this와 상속  (0) 2009.05.31
[C#] 오버로딩과 오버라이딩  (0) 2009.05.31
[C#] 상속과 sealed  (1) 2009.05.31
[C#] static과 new 그리고 property  (0) 2009.05.31
[C#] C# 시작하기  (0) 2009.05.31
: