ASP/ADO.Net C# 실무 과정 자료] 추상 클래스(Abstract Class)






ASP/ADO.Net C# 실무 과정 자료] 추상 클래스(Abstract Class)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


추상 클래스(Abstract Class)


■ 추상 클래스의 개념

 - 추상 메소드란 구현 부분이 전혀 없는 메소드를 의미한다.



 - 추상 클래스는 추상 메소드가 아닌 일반 메소드를 가질 수 있다. 반면 추상 클래스가 아니면 추상 메소드를 가질 수 없다.



 - 추상 클래스는 직접 객체를 생성할 수 없으며, 이 클래스를 상속받은 서브 클래스에서 슈퍼 클래스(이 경우는 추상 클래스임)의 모든 추상메소드를 구현한 후에 객체를 생성할 수 있다.



ASP/ADO.Net C# 실무 과정 자료] 최종 클래스(Sealed Class)






ASP/ADO.Net C# 실무 과정 자료] 최종 클래스(Sealed Class)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


최종 클래스(Sealed Class)


■ 클래스의 정의 앞에 다음과 같이 sealed를 붙이면 그 클래스는 상속될 수 없다.

sealed class Circle  {  //……   }



■ 왜 사용되는가?

- 프로그램상의 이유 -> 오류를 줄이기 위해서


- 때로는 상속을 할 경우 정상적인 클래스가 될 수 없을 수도 있다. (private등을 쓰는 경우)


- 성능상의 이유 -> 상속이 금지된 클래스는 보통 클래스에 비해 메모리 소비가 적고, 빠르다. (상속을 위한 별도 공간이 필요함)


- Console이나 String등의 System 클래스 들도 최종클래스로 정의되어있다.



ASP/ADO.Net C# 실무 과정 자료]  가상 메소(Virtual Method) 






ASP/ADO.Net C# 실무 과정 자료]  가상 메소(Virtual Method) 

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


가상 메소(Virtual Method) 

■ 앞에서 말한 overriding은 묵시적으로 일어나는 것임


■ 명시적으로 슈퍼클래스의 메소드를 가상 메소드로, 서브클래스의 메소드를 오버라이드 메소드로 정의할 수 있다. 


■ virtual-override 쌍을 이용


class Car{

public virtual void Run() {}

}


class SportsCar : Car{

public override void Run() {}

}

ASP/ADO.Net C# 실무 과정 자료] Overriding과 Overloading






ASP/ADO.Net C# 실무 과정 자료] Overriding과 Overloading

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


Overriding과 Overloading


해설)


- 클래스 SportsCar와 Car(슈퍼 클래스) 양쪽에 메소드 “Run()”이 정의되어 있으므로, 이 메소드는 오버라이딩된 메소드이다.


- SportsCar형의 객체 boxter로서 Run()를 호출하면, 오버라이딩 된 메소드가 실행된다.


- 한편, boxter.Run(250)은 매개변수가 있기 때문에 int형 매개변수를 하나가진 메소드인 Run(int i)가 실행되었다. 이 메소드는 오버로딩된 메소드이다.

ASP/ADO.Net C# 실무 과정 자료] 메소드 오버로딩(overloading)







ASP/ADO.Net C# 실무 과정 자료] 메소드 오버로딩(overloading)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


메소드 오버로딩(overloading)


■ 오버로딩

- 메소드 오버라이딩과는 달리, 메소드 명만 같고 매개변수의 개수 또는 매개변수 타입이 일치되지 않는 경우를 메소드 오버로딩(overloading)이라고 한다.


- 메소드 오버라이딩과 메소드 오버로딩 사이의 개념의 차이를 명확하게 익힐 필요가 있다.


- 객체 지향 개념을 뒷받침하는 하나의 개념이다.



ASP/ADO.Net C# 실무 과정 자료] 메소드 오버라이딩(overriding)






ASP/ADO.Net C# 실무 과정 자료] 메소드 오버라이딩(overriding)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


메소드 오버라이딩(overriding)


■ 오버라이딩

- 슈퍼 클래스에서 정의된 메소드를 서브 클래스에서 다시 정의하는 경우, 메소드의 매개변수의 개수와 타입이 서로 동일할 때 서브 클래스의 매소드는 슈퍼클래스의 메소드를 overriding 한다고 한다.


- 오버라이드된 메소드가 서브 클래스 내에서 호출되면 슈퍼클래스에 의해 정의된 메소드는 무시되고 서브 클래스에 의해 정의된 메소드를 참조하게 된다.


■ 주의

- C# 컴파일러는 오버라이드가 프로그래머의 실수일 가능성을 알려주기 위해 주의 메시지를 프린트한다.


ASP/ADO.Net C# 실무 과정 자료] 생성자의 상속 예제(2) 






ASP/ADO.Net C# 실무 과정 자료] 생성자의 상속 예제(2) 

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다


생성자의 상속 예제(2)

case 1



case 2



해설 

case 1 

- public Student() 생성자는 묵시적으로 슈퍼클래스의 기본 생성자를 수행한다.

- 생성자 People(string str1) 는 상속되지 않는다. 서브클래스에서 위와 같은 형식의 생성자를 수행하면 error가 발생한다.



case 2

- Public Student() : base(“kym")을 하면 Student() 생성자의 수행 이전에 슈퍼클래스의 People(srting str1) 생성자가 수행된다.




ASP/ADO.Net C# 실무 과정 자료] 생성자의 상속 예제(1) 






ASP/ADO.Net C# 실무 과정 자료] 생성자의 상속 예제(1) 

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


생성자의 상속 예제(1) 


+ Recent posts