상속 |
상속 : 부모에게서 재산을 물려받는것
succeeded to the throne. father -ㅁ-...
다른 클래스의 메소드 변수를 그대로 가지고오는 것을 말합니다.
백문이불여일견~! 우선 사용하는 방법은
class 기반(부모) 클래스명{}
class 파생(자식) 클래스명 : 기반(부모) 클래스명
{
//
}
예제)
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- class Base
- {
- protected string var1 = "protected 변수";
- protected internal string var2 = "protected internal 변수";
- internal string var3 = "internal 변수";
- public string var4 = "public 변수";
- }
- class Program : Base
- {
- static Program pr = new Program();
- static void Main(string[] args)
- {
- Console.WriteLine(pr.var1 );
- Console.WriteLine(pr.var2);
- Console.WriteLine(pr.var3);
- Console.WriteLine(pr.var4);
- }
- }
결과)
11줄, 23줄 : 파생클래스는 접근제한 protected를 사용할 수 있습니다.~
17줄 : 그리고 그대로 Base를 상속한것을 알 수 있습니다.
Seald |
sealed는 상속을 못하게 하는 키워드입니다.
예제)
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- sealed class Base
- {
- protected string var1 = "protected 변수";
- protected internal string var2 = "protected internal 변수";
- internal string var3 = "internal 변수";
- public string var4 = "public 변수";
- }
- class Program : Base
- {
- static Program pr = new Program();
- static void Main(string[] args)
- {
- Console.WriteLine(pr.var1 );
- Console.WriteLine(pr.var2);
- Console.WriteLine(pr.var3);
- Console.WriteLine(pr.var4);
- }
- }
- }
결과)
'ConsoleApplication2.Child': sealed 형식 'ConsoleApplication2.Parent'에서 파생될 수 없습니다.
9줄 : sealed를 사용하면 위와같은 에러가 발생합니다.
캐스팅 |
추가 정리 할것.
업 캐스팅
자식이 부모 클래스로 변환.
다운캐스팅.
부모 클래스가 자식클래스로 변환.
다운캐스팅은 지양해야 한다.
반응형
'컴퓨터프로그래밍 > C#' 카테고리의 다른 글
C# - 추상클래스 (0) | 2016.11.27 |
---|---|
C# - 메소드 메소드 재정의(override), 숨기기 (0) | 2016.11.27 |
생성자와 소멸자 (0) | 2016.11.25 |
접근제한자와 this (0) | 2016.11.24 |
C# - 클래스, 객체지향의 개념잡기 (0) | 2016.11.24 |