본문 바로가기

   
Programming/C#

최종클래스(Sealed), 인터페이스(Interface)

반응형

최종클래스

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Test

{

       class Sealed

       {

             static void Main(string[] args)

             {

                    NowTime t1 = new NowTime();

             }

       }

 

       //봉인(최종) 클래스

       // - 성능 이익

       // - 닷넷 제공 클래스의 최하위 클래스들은 봉인 클래스

       sealed class Time

       {

       }

 

       class NowTime : Time

       {

 

       }

}

 

 

인터페이스(Interface)

추상클래스에서 확장된 개념

- 클래스의 표준 사항을 결정하는 클래스

 - 추상클래스와 유사

 - 구성 요소 : 메서드, 프로퍼티, 인덱서, 이벤트 등..표준

 - 추상 클래스와 차이점 : 구현을 할 수 가 없음!!!(멤버 변수를 가질 수 없음, 메서드 본문 구현을 못함) -> 추상 메서드만 가지고 있는 추상 클래스와 유사

 

★ 일반 클래스 : 변수, 메서드, 구현 가능, 객체(인스턴스)를만들수 있다.

 

★ 추상클래스변수, 메서드, 구현 가능 , 추상메서드(규격),  추상메서드로 규격 구현 가능

 

★인터페이스 : 프로퍼티, 인덱서 같은 또다른 추가 규격을 만들수 있다.

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Test

{

       class Interface

       {

             static void Main(string[] args)

             {

                    아기 baby = new 아기();

                    어른 bic = new 어른();

 

                    baby.걷다();

                    baby.말하다();

                    bic.걷다();

                    bic.말하다();

             }

       }

 

       //인터페이스는 유일하게 헝가리언 규약을 대체로 따른다. I -> 인터페이스

       interface I사람

       {

             //public abstract void 걷다();

             //무조건 공개, 무조건 추상적 public abstract 제외

             void 걷다();

             void 말하다();

       }

 

       class 아기 : I사람

       {

             //재정의가 당연한 것이기 때문에 인터페이스 안에 메소드 구현시엔 키워드 없이 정의 하기로 함.

             public void 걷다()

             {

                    Console.WriteLine("아장아장걷다");

             }

 

             public void 말하다()

             {

                    Console.WriteLine("옹알옹알");

             }

       }

 

       class 어른 : I사람

       {

             public void 걷다()

             {

                    Console.WriteLine("성큼성큼");

             }

 

             public void 말하다()

             {

                    Console.WriteLine("쫑알쫑알");

             }

       }

 

}

 

 

 

 

반응형