본문 바로가기

추상함수

[C# 객체지향] 업캐스팅( 제 1 다형성 ) 가상함수 ( 제 2 다형성 ) 업캐스팅이란?! 특정 객체가 하위클래스의 형에서 상위의 클래스형으로 캐스팅 되는 것이다. 말 그대루 하위클래스가 상위클래스로 캐스팅 되는 것. 이 업캐스팅과 가상함수를 한번 생각해보자. -출저 JABOOK- 업캐스팅 된후에 메소드를 호출했을 때 Virtual 를 이용한 override를 했을 때는 하위클래스를 상위클래스형으로 캐스팅했다면 아들(하위) 클래스의 메소드를 사용 할 수 있다. 그러나 new로 오버라이딩 한다면 하위클래스를 상위클래스로 캐스팅 하더라도 자기 자신의 메소드가 호출 된다. 더보기
[C# 객체지향] 인터페이스 (Interface) 란?! 간단하게 말해서, 클래스내의 구성요소들의 구현부가 없고, 선언부의 집합으로만 이루어진 클래스이다. 일반적으로 추상 클래스는 일반클래스에 구현이 없는 추상함수로 이루어진 경우지만, 인터페이스는 내부의 멤버가 몽땅 구현이 없는 추상으로 이루어진 종합체라고 생각하면 된다. 1. 인터페이스를 이용해서 객체 생성이 되지 않는다. 2. 인터페이스 내의 멤버는 모두 몸체가 없다. 3. 인터페이스 멤버는 default로 전부 public이다. 4. 내부에 필드를 가질 수 없다. { } 가 사용될 수 없다는 말이다. 5. 어떠한 접근자, 한정자를 붙일 수 없다. - 다시말하면, 인터페이스는 구현을 목적으로 한다. 그리고 이러한 인터페이스는 C#에서는 힘든 다중상속이 가능하게 한다. 이 인터페이스와 다중상속이 어떤 연관이.. 더보기
[C# 객체지향] 추상 함수, 추상 클래스 - Abstract Mehtod, Abstract Class 추상 함수란 무엇인가?! Abstract Method .. 몸체가 없는 함수. 프로토타입만 가지고 있는 함수. 라고 읽혀지고 있다. -출저 - JABOOK 이 추상함수를 쓰려면 몸체 앞에 반드시 abstract 키워드를 붙여서 사용 한다. 그리고 이러한 추상함수를 하나라도 포함하고 있는 클래스는 앞에도 abstract를 붙여서 추상 클래스임을 명시해야 한다. 또한 이러한 추상 클래스는 반드시 상속하여 오버라이드를 통해 구현한다음 사용하여야 객체가 생성가능하다. 단 하나의 추상 함수가 구현되어 있지 않다면 상속받은 클래스 또한 추상 클래스가 되고 만다. * Abstract로 선언된 추상 함수는, 상속받은 하위클래스에서 오버라이딩 하려면 override키워드를 사용하여 오버라이딩 해준다. 그러면 이러한 추상.. 더보기