TIL

2024/4/5 TIL

jhwoo1221 2024. 4. 5. 20:53

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습

Q22. 오버로딩과 오버라이딩의 차이점을 설명해주세요.

A22.
오버로딩과 오버라이딩은 객체 지향 프로그래밍에서 다형성을 구현하는 두 가지 방법이다.
둘 다 같은 이름의 메서드나 연산자를 여러 번 정의하는 것을 의미하지만, 각각 다른 용도로 사용된다.

오버로딩(Overloading)
오버로딩은 같은 이름의 메서드나 연산자를 여러 개 정의하는 것을 말한다.
오버로딩은 같은 메서드의 이름을 사용할 필요가 있지만, 매개변수의 개수나 타입에 따라 다른 처리를 하고 싶은 경우에 사용된다.
이때 메서드나 연산자의 시그니처(매개변수의 타입, 개수 등)가 서로 달라야 한다.
즉, 같은 이름으로 여러 버전의 메서드를 정의하여 서로 다른 매개변수를 받을 수 있도록 한다.

컴파일러는 오버로딩된 메서드를 호출할 때, 매개변수의 타입과 개수를 기반으로 적절한 메서드를 선택한다.
오버로딩은 메서드의 시그니처에 의해 구분되기 때문에, 리턴 타입만 다른 경우에는 오버로딩으로 간주되지 않는다.

오버라이딩(Overriding)
오버라이딩은 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 다시 정의(재정의)하는 것을 말한다. 
자식 클래스에서 부모 클래스의 메서드를 재정의함으로써, 부모 클래스의 동작을 자식 클래스에서 변경할 수 있다.

오버라이딩은 상속 관계에서 발생하며, 부모 클래스와 자식 클래스 간에 발생한다.
메서드의 시그니처가 동일해야 한다. (메서드의 이름, 매개변수의 개수와 타입, 리턴 타입이 모두 동일해야 한다)
오버라이딩된 메서드는 부모 클래스의 메서드 대신 사용되며, 자식 클래스에서 해당 메서드를 호출할 때 자식 클래스에서 정의된 동작이 수행된다.
동적 바인딩(dynamic binding)을 사용하여 실행 시간에 적절한 메서드를 호출한다.

간단히 정리하면, 오버로딩은 같은 이름의 다른 메서드를 만들고, 오버라이딩은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것이다.

 



'오늘의 나는 무엇을 잘했는지' - 성취

대분류 : 최종 팀 프로젝트 - 클라이언트 구현

소분류 : 타일셋 작업

 

메인 퀘스트 1-1과 1-2의 타일셋 배치 작업을 마쳤다.

 

 

맵 배치 및 구조는 참조한 레퍼런스 없이 맨땅부터 창작했다. 

단순히 칸에 타일을 배치하는게 끝이 아니고, 여러 타일이 순서대로 겹쳐져야 예쁘고 자연스러운 모양이 나오기 때문에

나름 섬세함과 디자인 센스가 필요한 작업이었다.


'오늘의 나는 어떤 문제를 겪었는지, 앞으로 어떻게 해결할 것인지' - 개선
생각보다 타일 작업에 시간이 많이 소모됐다.

주말을 할애해서 타일 셋 배치 작업을 마쳐야겠다.

'TIL' 카테고리의 다른 글

2024/4/9 TIL  (0) 2024.04.09
2024/4/8 TIL  (0) 2024.04.08
2024/4/4 TIL  (0) 2024.04.04
2024/4/3 TIL  (0) 2024.04.03
2024/4/2 TIL  (0) 2024.04.02