본문 바로가기

추상클래스

[C# 객체지향] 업캐스팅( 제 1 다형성 ) 가상함수 ( 제 2 다형성 ) 업캐스팅이란?! 특정 객체가 하위클래스의 형에서 상위의 클래스형으로 캐스팅 되는 것이다. 말 그대루 하위클래스가 상위클래스로 캐스팅 되는 것. 이 업캐스팅과 가상함수를 한번 생각해보자. -출저 JABOOK- 업캐스팅 된후에 메소드를 호출했을 때 Virtual 를 이용한 override를 했을 때는 하위클래스를 상위클래스형으로 캐스팅했다면 아들(하위) 클래스의 메소드를 사용 할 수 있다. 그러나 new로 오버라이딩 한다면 하위클래스를 상위클래스로 캐스팅 하더라도 자기 자신의 메소드가 호출 된다. 더보기
[C# 객체지향] 추상 함수, 추상 클래스 - Abstract Mehtod, Abstract Class 추상 함수란 무엇인가?! Abstract Method .. 몸체가 없는 함수. 프로토타입만 가지고 있는 함수. 라고 읽혀지고 있다. -출저 - JABOOK 이 추상함수를 쓰려면 몸체 앞에 반드시 abstract 키워드를 붙여서 사용 한다. 그리고 이러한 추상함수를 하나라도 포함하고 있는 클래스는 앞에도 abstract를 붙여서 추상 클래스임을 명시해야 한다. 또한 이러한 추상 클래스는 반드시 상속하여 오버라이드를 통해 구현한다음 사용하여야 객체가 생성가능하다. 단 하나의 추상 함수가 구현되어 있지 않다면 상속받은 클래스 또한 추상 클래스가 되고 만다. * Abstract로 선언된 추상 함수는, 상속받은 하위클래스에서 오버라이딩 하려면 override키워드를 사용하여 오버라이딩 해준다. 그러면 이러한 추상.. 더보기
[C#의 객체지향] 1 -7 오버라이딩, this, base 오늘은 오버라이딩과 This. Base 키워드에 대해 알아보겠다. 오버라이딩(Overriding) : 같은 이름을 가진 변수나, 메소드를 처리하는 방식이다. 첫번째: 지역 변수와 멤버 변수 명(name) Class test { int member=0; public void show() { int member =1000; Console.WriteLine(member); } } 이렇게 하면 클래스의 멤버변수 member이 0으로 선언되었음에도 불구하고, show()메소드안의 member가 지역변수로 선 언 되었기 때문에 출력을 하면 1000이 출력되게 된다. 두번째 : 상위클래스와 하위클래스에서의 동일한 명(name) class Top { public void show() { Console.WriteLin.. 더보기