abstract class Animal { public abstract void cry(); }; class Dog : Animal { public override void cry() { Console.WriteLine("멍멍"); } }; C#에서는 추상 클래스로 만들기위해서 위의 코드와 같이 class 키워드 앞에 abstract 키워드를 붙여주어야 합니다. 그리고 public abstract void cry()와 같이 abstract를 함수에 붙여주면 그것으로 추상 함수가 됩니다. C++에서의 순수가상함수 이죠. 그리고 C++에서와 마찬가지로 이 클래스를 상속받는 파생클래스는 이 함수를 오버라이드해야 합니다. 또 C++에서와 같이 추상클래스는 객체를 생성할 수가 없습니다.
class aa { private int v; public int vg { set { v = value; } get { return v; } } }; class Program { static void Main(string[] args) { aa ss = new aa(); ss.vg = 2; Console.WriteLine(ss.vg); } } 클래스 aa의 멤버변수 int형 v는 private로 접근권한이 설정되어 있습니다. 그래서 외부에서 사용시 컴파일 에러가 나게되는데 c++에선 그럴떄 따로 set함수를 만들어 줌니다. 하지만 c#에선 set과 더불어 get도 따로 키워드가 존재합니다. 그 속성정의의 이름은 vg이며 set을 정의하지 않으면 외부에서 해당 vg의 int형 v에 값을 줄 수가 없고 반대..
http://hoochiii.tistory.com/10 http://blog.naver.com/inasie/70044692879