• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] C# - Abstraction (추상화)

3,920  
목차
  1. 추상화 (abstraction) 정의
  2. 추상화 (abstraction) 예제

 

추상화 (abstraction) 정의

 

특정 세부 정보 숨기고 사용자에게 필수 정보만 표시.

 


 

1.

추상화는 '추상클래스'나 '인터페이스'로 달성 가능.

 

2.

abstract 키워드 : 클래스와 메소드에 사용되는 비접근 한정자.


추상 클래스 (Abstract class)

객체 만드는데 사용할 수없는 제한된 클래스.

※ 접근하려면, 다른 클래스에서 상속돼야 함.


추상 메서드 (Abstract method) 

추상 클래스에서만 사용 가능하며, 본문이 없음. 

※ 본문은 상속된 하위 클래스에서 제공.

 

3.

추상 클래스는 (추상/일반) 메서드 모두 보유 가능.

(예)

abstract class Site // 추상 클래스

{

    public abstract void host(); // 추상 메서드

    public void greeting() // 일반 메서드

   {

        Console.WriteLine("놀러오세요.");

    }

}

 

4.

위 Site 추상 클래스로 객체 생성 불가.

(예)

Site my = new Site(); // 에러 유발.

 

5.

Site 추상 클래스에 접근하려면, 

Site 추상 클래스를 상속하는 다른 서브 클래스 이용해야 함.

※ 클래스 상속은 콜론(:) 키워드 이용.

※ 기본 클래스 재정의는 override 키워드 이용.

 

 

추상화 (abstraction) 예제

파일명: Program.cs  

 

using System;

namespace Homzzang

{

    abstract class Site // 추상 클래스

    {

        public abstract void host(); // 추상 메서드

        public void greeting() // 일반 메서드

        {

            Console.WriteLine("홈페이지 놀러오세요.");

        }

    }


    class My : Site

    {

        public override void host()

        {

            Console.WriteLine("Homzzang.com");

        }

    }


    class Program

    {

        static void Main(string[] args)

        {

            My my = new My();

            my.host();

            my.greeting();

        }

    }

}

 

결과값:

Homzzang.com

홈페이지 놀러오세요.



분류 제목
class C# - OOP (객체 지향 프로그래밍)
class C# - Class (클래스) / Object (객체)
class C# - Class Members (클래스 멤버) - 속성(=필드), 메서드
class C# - Constructors (생성자)
class C# - Access Modifiers (접근 수정자)
class C# - Encapsulation (캡슐화) ※ Getter (게터) / Setter (세터)
class C# - Inheritance (상속)
class C# - Polymorphism (다형성)
class C# - Abstraction (추상화)
class C# - interface (인터페이스) ★
class C# - enums (이넘) - 상수 열거형 클래스
class C# - Files (파일) - 파일생성/파일읽기/파일쓰기
class C# - Exceptions (= Try...Catch..) - 에러 제어
목록
찾아주셔서 감사합니다. Since 2012