본문 바로가기

상속

[C# 객체지향] 인터페이스 (Interface) 란?! 간단하게 말해서, 클래스내의 구성요소들의 구현부가 없고, 선언부의 집합으로만 이루어진 클래스이다. 일반적으로 추상 클래스는 일반클래스에 구현이 없는 추상함수로 이루어진 경우지만, 인터페이스는 내부의 멤버가 몽땅 구현이 없는 추상으로 이루어진 종합체라고 생각하면 된다. 1. 인터페이스를 이용해서 객체 생성이 되지 않는다. 2. 인터페이스 내의 멤버는 모두 몸체가 없다. 3. 인터페이스 멤버는 default로 전부 public이다. 4. 내부에 필드를 가질 수 없다. { } 가 사용될 수 없다는 말이다. 5. 어떠한 접근자, 한정자를 붙일 수 없다. - 다시말하면, 인터페이스는 구현을 목적으로 한다. 그리고 이러한 인터페이스는 C#에서는 힘든 다중상속이 가능하게 한다. 이 인터페이스와 다중상속이 어떤 연관이.. 더보기
[C#의 객체지향] 1 -6 상속관계에서의 접근제한자 이번엔 접근제한자자에 대해서 알아볼 것이다. 여기서 접근제한자라는 말은, private , protected , public , default 이다. 상속에서의 private는? 상속을 했다면 아들은 아버지의 public 멤버뿐만 아니라, private 멤버까지 모두 물려받는다. 아들은 아버지의 모든 멤버의 마음대로 접근할 수 있을까? 답은 No 이다. 단, public멤버는 아들이라도 마음대로 점 찍고 접근 할 수가 있다. Father클래스안에 public int Money=50000; 이라는 public 인트형 타입의 멤버가 있다고 한다. 이 Father 클래스를 상속받은 Child : Father 클래스가 있다고 보자. 그러면 Child Imchild = new Child(); 하면 Imchild... 더보기
[C#의 객체지향] 1-4 상속 ( inheritance ) - 2 이번엔 상속의 특징에 대해서 알아보자. 생성자에 대해서는 다음 항목에서 공부 할 것이다. 그러나 생성자가 무엇인지 알고 싶다면 먼저 생성자부터 공부하고 올 것을 권한다. 어차피 생성자에 대한 개념이 있어야 상속을 이해하는데 있어서도 약간의 도움은 된다. 생성자에 대해서 간단하게 설명하면, 객체생성을 하는 순간 호출 되는 것이다. 예를 들어서 , class Child { public Child() { Console.WriteLine("I am Child"); } } 생성자가 어떤것인지 알 수 있겠는가? public Child 이것인데 일반 메소드는 public void,int,double Child () 이렇게 Type이 있어야 되는데 생성자는 그런것이 없이 클래스명과 동일하게 정의하면 된다. 중요한 점은.. 더보기
[C#의 객체지향] 1-4 상속 ( inheritance ) 오늘은 상속에 대해서 알아보겠다. 상속. 상속이란 말은 수없이 들어봤을것 이다. 상속세, 재산을 상속 받다. 말그대로 물려받는 것이다. 일단 개념적인 설명에 들어가기 앞서, 실제로 쓰이는 실전 예제로 알아보도록 하겠다. 그럼 왜 Class를 상속 받는 것일까?! Top 이라는 클래스가 있다고 보자. 첫째. 새로운 클래스를 만들어야 하는데 Top 클래스와 내용이 별 차이없고 조금만 수정해도 되는 경우. 둘째. Top 클래스의 소스코드를 전부 잃어버리고 DLL만 있는 경우. 이런 두 경우에는 기존의 Top클래스의 내용을 그대로 긁어(?)와서 조금만 내용을 가미하여 클래스를 정의 해주면 되는 문제들이다. 이럴때 필요한것이 바로 상속이다. 예를들어서, 우선 Top형 클래스를 라이브러리 형태로 만들어보자. 첫째... 더보기