최종클래스
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("쫑알쫑알");
}
}
}