목차
C# 상속 (Subclass, Superclass)
sealed 키워드
C# 상속 (Subclass, Superclass)
C#에서는 한 클래스에서 다른 클래스로 (속성・메소드) 상속 가능.
※ 상속 장점:
① 기존 코드 재사용 가능.
② 다형성 (= 상속한 메서드로 다른 작업 수행).
1.
subclass (자식클래스)
다른 클래스를 상속하는 클래스.
= Derived Class (파생클래스)
superclass (부모클래스)
다른 클래스에 의해 상속되는 클래스.
= Base Class (기본클래스)
2.
: (콜론) 기호 사용해 상속. (cf. Java 경우, extends 키워드 사용.)
(예)
class 자식 : 부모
{
...
}
[예제] ExHz (자식)클래스가 Hz (부모)클래스를 상속.
※ 상속해야만 ExHz 클래스에서 Hz 클래스의 site 속성 사용 가능.
※ 아래 3개의 파일을 아래 구조의 폴더 안에 생성 후 실행.
C:\Users\사용자명\source\repos\Homzzang\Homzzang\
1.
Hz.cs 생성.
using System;
namespace Homzzang
{
class Hz
{
public string site = "홈짱닷컴";
public void intro()
{
Console.WriteLine("코딩언어 그누보드 서버관리 강의");
}
}
}
2.
ExHz.cs
using System;
namespace Homzzang
{
class ExHz : Hz
{
public string host = "Homzzang.com";
}
}
3.
Program.cs 생성.
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
ExHz my = new ExHz();
Console.WriteLine(my.site + " " + my.host);
my.intro();
}
}
}
결과값:
코딩언어 그누보드 서버관리 강의
홈짱닷컴 Homzzang.com
sealed 키워드
다른 클래스가 상속 받는 걸 차단.
※ 부모 클래스 선언 부분에 sealed 키워드 추가.
cf. Java 경우, final 키워드 사용.
[예제] ExHz 클래스가 Hz 클래스 상속하는 걸 차단.
※ 그 결과, 컴파일 시 에러 발생.
sealed class Hz
{
...
}
class ExHz : Hz
{
...
}
결과값: 'ExHz': cannot derive from sealed type 'Hz'
주소 복사
랜덤 이동
최신댓글