Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- React
- 오버라이딩
- Android
- scrollview
- 스프링부트
- Kotlin
- stylesheet
- nodejs
- RecyclerView
- 랜덤번호
- TextView
- JavaScript
- GoogleMaps
- array
- button
- Java
- 리액트
- fragment
- npm
- 코틀린
- 안드로이드
- JS
- Linux
- 랜덤넘버
- SpringBoot
- Javscript
- TypeScript
- Hook
- 구글맵스
- 자바스크립트
Archives
- Today
- Total
타닥타닥 개발자의 일상
오버라이드 VS 오버로드의 차이점 알아보기 본문
오버라이드(Override)와 오버로드(Overload)는 객체지향 프로그래밍에서 다형성(Polymorphism)을 구현하는 방법 중 두 가지.
1.오버라이드(Override)
- 오버라이드는 상위 클래스(부모 클래스)에서 이미 정의된 메서드를 하위 클래스(자식 클래스)에서 동일한 시그니처(메서드 이름, 매개변수 유형 및 개수)로 다시 정의하는 것을 의미.
- 오버라이드를 사용하면 하위 클래스는 상위 클래스의 메서드를 자신의 필요에 맞게 재정의 가능.
- 오버라이드된 메서드는 상위 클래스의 메서드 대신 호출되며, 다형성을 통해 동일한 메서드 호출 시에도 실제 객체의 타입에 따라 다른 동작이 수행.
class Animal:
def make_sound(self):
return "Some generic sound"
class Dog(Animal):
def make_sound(self):
return "Bark bark!"
class Cat(Animal):
def make_sound(self):
return "Meow meow!"
# 사용 예시
dog = Dog()
cat = Cat()
print(dog.make_sound()) # "Bark bark!"
print(cat.make_sound()) # "Meow meow!"
2.오버로드(Overload)
- 오버로드는 같은 클래스 내에서 메서드의 이름은 같지만 매개변수의 유형, 개수, 또는 순서가 다른 여러 버전을 정의하는 것.
- 오버로드된 메서드는 메서드 이름이 같지만 시그니처가 다르므로 컴파일러가 인자의 유형을 기반으로 어떤 메서드를 호출할지 결정.
- 오버로드된 메서드는 같은 이름을 사용하며 다양한 매개변수를 받아들일 수 있어, 코드의 가독성과 유연성을 높이는 데 사용.
class Calculator:
def add(self, a, b):
return a + b
def add(self, a, b, c):
return a + b + c
# 사용 예시
calculator = Calculator()
result1 = calculator.add(1, 2) # 에러, 메서드 오버로드가 지원되지 않음
result2 = calculator.add(1, 2, 3) # 정상 동작
오버라이드는 상속 관계에서 메서드를 재정의하고 다형성을 구현하는 데 사용,
오버로드는 하나의 클래스 내에서 동일한 이름의 메서드를 다양한 매개변수 조합으로 정의하여 유연성을 높이는 데 사용.
'코딩 기록 > 유용한 IT 팁' 카테고리의 다른 글
REST vs RESTFUL 는 무엇인가? 둘의 미묘한 차이점 (0) | 2024.03.03 |
---|---|
클래스 vs 인터페이스 vs 추상 메서드 는 언제 어떻게 사용하는가? (0) | 2024.03.03 |
깃허브에서 간단하게 프론트 페이지 배포하는 방법 (0) | 2023.04.18 |
upsplash API를 Chat GPT에 적용하고 이미지 바로 Chat GPT 통해서 받기 (0) | 2023.04.18 |
Comments