컴퓨터프로그래밍/C#

C# - 추상클래스

zelkova 2016. 11. 27. 09:06

<목차로 돌아가기>


  추상 클래스


추상클래스는 클래스의 설계도라고 인식할 수 있다.


a팀장이 부모님이 급히 입원하셔서  b사원에게 자동차 에어백을 터트리는 메소드를 제작하라고 시켰다.


b는 열심히 노력해서 아래와 같이 구현했다.

airback(int 크기, int 색상){ ... } 


a팀장은 상황이 진정되자 회사에 돌아와서 b에게 작업한걸 요구했고. a는 깊은 빡침을 느꼇다.


a가 원하는건 아래와 같은 작업이었기 때문이다.

airback(int 터지는시점, int 에어백의 압력){ ... } 


이런 상황을 막기위해서 추상클래스가 필요하게 되었다.

※ 올래는 클래스로 설명해야 하지만 글이 늘어져서 메소드를 어거지로 끼워넣음.


인터페이스도같은 이유에서 존재하지만 인터페이스는 다중 상속적인 측면에서 단일 상속만을 할 수 있다는 차이점이 있다.


사용법)

abstract class 클래스명

{


}



예제)

  1. using System;
  2.  using System.Collections.Generic;
  3.  using System.Linq;
  4.  using System.Text;
  5.  using System.Threading.Tasks;

  6.  namespace ConsoleApplication2
  7.  {
  8.     abstract public class AbstructClass
  9.     {
  10.         public void airBackTime()
  11.         {
  12.             Console.WriteLine("이렇게 작업하거라");
  13.         }
  14.         abstract public void airBackPress();
  15.     }
  16.     class PlayerClass : AbstructClass
  17.     {
  18.         public override void airBackPress()
  19.         {
  20.             Console.WriteLine("ㅇㅋㄷㅋ");
  21.         }
  22.     }
  23.     class Application
  24.     {
  25.         static void Main(string[] args)
  26.         {
  27.             PlayerClass c = new PlayerClass();
  28.             c.airBackPress();

  29.         }
  30.     }
  31.  }


19줄 : airBackPress() 안쓰면 아래와 같은 경고가 나타남.



  기존메소드의 추상화

ㆍ추상 메서드는 기반 클래스의 virtual로 선언된 가상 메소드를 override 키워드를 사용해서 재정의하고 선언할 수 있다.

ㆍ 충상 메소드는 기반 클래스의 override로 선언된 오버라이드 메소드를 override 키워드를 사용해서 재정의하고 선언할 수있다.


    class Parent

    {

        public void airBackTime()

        {

            Console.WriteLine("이렇게 작업하거라");

        }

    }

    class FirstChild : Parent

    {

        public abstract override void airBackTime();

    }


반응형

'컴퓨터프로그래밍 > C#' 카테고리의 다른 글

C# - 인터페이스  (0) 2016.11.29
C# - 확장클래스, 분할메소드, 중첩클래스  (0) 2016.11.28
C# - 메소드 메소드 재정의(override), 숨기기  (0) 2016.11.27
C# - 상속  (0) 2016.11.25
생성자와 소멸자  (0) 2016.11.25