ASP/ADO.Net C# 실무 과정 자료] 추상 클래스 사용하기






ASP/ADO.Net C# 실무 과정 자료] 추상 클래스 사용하기

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

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



추상 클래스 사용하기


설)


■ 추상 클래스 SportsCar는 추상클래스 Car를 상속받을 수있다.


■ Car b=new Car(); 처럼 추상클래스로 직접 객체를 생성하는 것은 에러가 된다.


■ Boxter 클래스는 일반 클래스이지만, 슈퍼클래스 SportsCar에서 추상메소드를 정의하지 않았기 때문에 아무런 구현이 없어도 에러가 발생하지 않는다.


■ 뒷 페이지의 예에서 추상 메소드와 일반 메소드의 차이를 볼 수 있다.




ASP/ADO.Net C# 실무 과정 자료] 추상 클래스의 특징





ASP/ADO.Net C# 실무 과정 자료] 추상 클래스의 특징

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

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


추상 클래스의 특징


■일반 클래스와의 차이점


 - 추상 클래스는 상속의 최상위에 존재한다. 즉, 추상 클래스가 일반 클래스를 상속받을 수 없다.



 - 추상클래스가 추상클래스를 상속받을 수 있다.


 - 인터페이스를 이용하여 다중상속을 구현할 수 있다.


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# 실무 과정 자료] new 키워드






ASP/ADO.Net C# 실무 과정 자료] new 키워드


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

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


new 키워드


■ 명시적 오버라이딩 방법

- 앞에서 말한 가상 메소드 방법보다 편리한 방법으로 new 키워드를 사용하는 방법이 있다. 아래의 예는 앞 페이지의 예와 같은 역할을 한다.


- 상속관계에서 메소드가 충돌하는 것을 방지하기 위한 지시자의 역할을 한다.


- 가상/일반 메소드에 상관없이 사용된다.


class Car{

public void Run() {}

}


class SportsCar : Car{

new public void Run() {}

}



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)이라고 한다.


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


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



+ Recent posts