Guidelines

클래슀의 κΈ°λŠ₯을 ν™•μž₯ν•˜λŠ” 상속

상속(Inheritance)은 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ€‘μš”ν•œ κ°œλ… 쀑 ν•˜λ‚˜λ‘œ, κΈ°μ‘΄ 클래슀의 κΈ°λŠ₯을 μƒˆλ‘œμš΄ ν΄λž˜μŠ€μ—μ„œ μž¬μ‚¬μš© 및 ν™•μž₯ν•©λ‹ˆλ‹€.

상속을 잘 ν™œμš©ν•˜λ©΄ μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ΄ 높이고, μ²΄κ³„μ μœΌλ‘œ μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰¬μš΄ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


λΆ€λͺ¨ ν΄λž˜μŠ€μ™€ μžμ‹ 클래슀

μƒμ†μ—μ„œλŠ” κΈ°μ‘΄ 클래슀λ₯Ό λΆ€λͺ¨ 클래슀(λ˜λŠ” 슈퍼 클래슀)라고 ν•˜κ³ , 이 클래슀λ₯Ό 상속받아 μƒˆλ‘œ λ§Œλ“€μ–΄μ§€λŠ” 클래슀λ₯Ό μžμ‹ 클래슀(λ˜λŠ” μ„œλΈŒ 클래슀)라고 ν•©λ‹ˆλ‹€.

μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 속성과 λ©”μ„œλ“œλ₯Ό κ·ΈλŒ€λ‘œ 물렀받을 수 있으며, ν•„μš”μ— 따라 μƒˆ μ†μ„±μ΄λ‚˜ λ©”μ„œλ“œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ κΈ°μ‘΄ λ©”μ„œλ“œλ₯Ό λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

상속 μ˜ˆμ‹œ
class Vehicle: def __init__(self, brand, model): self.brand = brand self.model = model def start_engine(self): print(f"{self.brand} {self.model}의 엔진 μ‹œλ™") # Vehicle 클래슀λ₯Ό 상속받아 Car 클래슀λ₯Ό λ§Œλ“¦ class Car(Vehicle): def __init__(self, brand, model, year): super().__init__(brand, model) # λΆ€λͺ¨ 클래슀의 μƒμ„±μž 호좜 self.year = year def honk(self): print(f"{self.brand} {self.model}κ°€ 경적을 울림") # my_car 객체 생성 my_car = Car("λΈŒλžœλ“œA", "λͺ¨λΈB", 2024) # 좜λ ₯: λΈŒλžœλ“œA λͺ¨λΈB의 엔진 μ‹œλ™ my_car.start_engine() # 좜λ ₯: λΈŒλžœλ“œA λͺ¨λΈBκ°€ 경적을 울림 my_car.honk()

μ—¬κΈ°μ„œ Car ν΄λž˜μŠ€λŠ” Vehicle 클래슀λ₯Ό 상속받아 μƒμ„±λ©λ‹ˆλ‹€.

Car ν΄λž˜μŠ€λŠ” Vehicle 클래슀의 κΈ°λŠ₯을 κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λ©΄μ„œ, μΆ”κ°€λ‘œ honk λ©”μ„œλ“œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.


상속을 μ™œ μ‚¬μš©ν• κΉŒμš”?

상속을 μ‚¬μš©ν•˜λ©΄ μ€‘λ³΅λœ μ½”λ“œλ₯Ό 쀄이고, κ³΅ν†΅λœ κΈ°λŠ₯을 λΆ€λͺ¨ ν΄λž˜μŠ€μ— μž‘μ„±ν•œ ν›„, μžμ‹ ν΄λž˜μŠ€μ—μ„œ 이λ₯Ό μž¬μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ μ°¨λŸ‰μ„ λ‚˜νƒ€λ‚΄λŠ” 클래슀λ₯Ό μž‘μ„±ν•  λ•Œ, κ³΅ν†΅λœ κΈ°λŠ₯(예: 엔진 μ‹œλ™)을 λΆ€λͺ¨ ν΄λž˜μŠ€μ— μ •μ˜ν•˜κ³  각 μ°¨λŸ‰μ˜ νŠΉμ„±μ— λ§žλŠ” κΈ°λŠ₯은 μžμ‹ ν΄λž˜μŠ€μ—μ„œ λ”°λ‘œ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©

μžμ‹ ν΄λž˜μŠ€μ—μ„œ λΆ€λͺ¨ 클래슀의 λ©”μ„œλ“œλ₯Ό μƒˆλ‘­κ²Œ μ •μ˜ν•˜λŠ” 것을 λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©(Method Overriding)이라고 ν•©λ‹ˆλ‹€.

λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©μ„ μˆ˜ν–‰ν•  κ²½μš°μ—λŠ” λΆ€λͺ¨μ˜ λ©”μ„œλ“œμ™€ λ™μΌν•œ 이름을 μ‚¬μš©ν•˜λ©°, selfλ₯Ό 포함해야 ν•©λ‹ˆλ‹€.

이λ₯Ό 톡해 μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 κΈ°λŠ₯을 μžμ‹ μ—κ²Œ 맞게 μž¬μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”© μ˜ˆμ‹œ
class ElectricCar(Car): def start_engine(self): print(f"{self.brand} {self.model}의 μ „κΈ° λͺ¨ν„°κ°€ 켜짐")

ElectricCar ν΄λž˜μŠ€λŠ” Car 클래슀λ₯Ό μƒμ†λ°›μ•˜μ§€λ§Œ, start_engine λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©ν•˜μ—¬ μ „κΈ° μžλ™μ°¨μ— 맞게 λ™μž‘μ„ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

클래슀의 κΈ°λŠ₯을 ν™•μž₯ν•˜λŠ” 상속

Animal 클래슀의 κΈ°λŠ₯을 상속받은 Dog 클래슀의 객체가 λ™μΌν•œ sound λ©”μ„œλ“œλ‘œ '멍멍'을 좜λ ₯ν•˜λ„λ‘ ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒμš”? μ•„λž˜ λΉˆμΉΈμ„ μ±„μ›Œ λ³΄μ„Έμš”.

class Animal:

    def sound(self):

        print("μ†Œλ¦¬μšΈμŒ")


class Dog(Animal):

    
:

        print("멍멍")


my_dog = Dog()

my_dog.sound()

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result