Programming languages/Java

슈퍼클래슀 & μ„œλΈŒν΄λž˜μŠ€ (μžλ°” μ΄ˆλ³΄μžλ„ 3λΆ„ μ»·!)

yoooCo 2025. 4. 13. 10:32

🌟 슈퍼클래슀 & μ„œλΈŒν΄λž˜μŠ€λž€?

πŸ’¬ μžλ°” κ³΅λΆ€ν•˜λ‹€ 보면 κΌ­ λ§ˆμ£ΌμΉ˜λŠ” 말!
"슈퍼클래슀", "μ„œλΈŒν΄λž˜μŠ€" μ–΄λ ΅κ²Œ λŠκ»΄μ§€μ…¨λ‚˜μš”?
μ§€κΈˆλΆ€ν„° μ•„μ£Ό μ‰½κ²Œ, 예쁘게! μ„€λͺ…ν•΄λ“œλ¦΄κ²Œμš” 😊


πŸ‘ͺ μŠˆνΌν΄λž˜μŠ€λŠ” λΆ€λͺ¨, μ„œλΈŒν΄λž˜μŠ€λŠ” μžμ‹μ΄μ—μš”

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°(OOP)μ—μ„œλŠ”
클래슀 간에 "상속"μ΄λΌλŠ” 관계λ₯Ό 맺을 수 μžˆμ–΄μš”.

μš©μ–΄ 의미
πŸ‘΄ 슈퍼클래슀 λΆ€λͺ¨ 클래슀 (κΈ°λŠ₯을 "λ¬Όλ €μ£ΌλŠ”" 클래슀)
πŸ‘Ά μ„œλΈŒν΄λž˜μŠ€ μžμ‹ 클래슀 (κΈ°λŠ₯을 "λ¬Όλ €λ°›λŠ”" 클래슀)

πŸ“¦ λΆ€λͺ¨μ˜ κΈ°λŠ₯을 κ·ΈλŒ€λ‘œ κ°€μ Έμ™€μ„œ,
✨ μžμ‹ 클래슀만의 κ°œμ„±λ„ 더할 수 μžˆλŠ” 게 μƒμ†μ΄μ—μš”!


🚲 μžμ „κ±° 클래슀둜 μ˜ˆμ‹œ 보기

// πŸš— λΆ€λͺ¨ 클래슀: νƒˆκ²ƒ(Vehicle)
public class Vehicle {
    int speed;

    void accelerate() {
        speed += 10;
    }

    void brake() {
        speed -= 5;
    }
}
// ⚑ μžμ‹ 클래슀: μ „κΈ°μ°¨(ElectricCar)
public class ElectricCar extends Vehicle {
    int batteryLevel;

    void chargeBattery(int amount) {
        batteryLevel += amount;
    }
}

πŸ”‹ ElectricCar ν΄λž˜μŠ€λŠ”
Vehicle 클래슀의 λͺ¨λ“  κΈ°λŠ₯(속도 증가, 감속 λ“±)을 κ·ΈλŒ€λ‘œ λ¬Όλ €λ°›κ³ ,
μ „κΈ°μ°¨λ§Œμ˜ κ³ μœ ν•œ κΈ°λŠ₯인 배터리 μΆ©μ „ κΈ°λŠ₯을 μΆ”κ°€λ‘œ κ°–κ²Œ λ©λ‹ˆλ‹€.


πŸ” 상속을 μ“°λŠ” 이유?

이유 🌱 μ„€λͺ… ✏️
βœ… μ½”λ“œ μž¬μ‚¬μš© λΆ€λͺ¨ 클래슀의 μ½”λ“œλ₯Ό 볡뢙 없이 κ·ΈλŒ€λ‘œ μ‚¬μš© κ°€λŠ₯!
βœ… μœ μ§€λ³΄μˆ˜ 편리 λΆ€λͺ¨ μ½”λ“œλ§Œ μˆ˜μ •ν•΄λ„ μžμ‹ ν΄λž˜μŠ€μ— 적용됨
βœ… ν™•μž₯μ„± Good 곡톡 κΈ°λŠ₯은 λΆ€λͺ¨μ—, 각자 νŠΉμ„±μ€ μžμ‹μ— μž‘μ„± κ°€λŠ₯

🌍 μžλ°”μ—μ„œλ§Œ μ“°λŠ” κ°œλ…μΈκ°€μš”?

μ•„λ‹ˆμ—μš”! μ „ν˜€μš”! πŸ˜„
슈퍼클래슀/μ„œλΈŒν΄λž˜μŠ€λŠ” Java뿐 μ•„λ‹ˆλΌ
Python, C++, C#, JavaScript λ“±
λͺ¨λ“  객체지ν–₯ μ–Έμ–΄μ—μ„œ μ“°μ΄λŠ” 곡톡 κ°œλ…μ΄μ—μš”.

μ–Έμ–΄ 상속 ν‘œν˜„ 방법
Java class Dog extends Animal
Python class Dog(Animal)
C++ class Dog : public Animal
C# class Dog : Animal
JavaScript class Dog extends Animal

🧠 μ‰½κ²Œ κΈ°μ–΅ν•˜λŠ” κΏ€νŒ 🍯

  • πŸ“– 슈퍼클래슀 = κΈ°λ³Έ 섀계도
  • 🧱 μ„œλΈŒν΄λž˜μŠ€ = κ·Έ 섀계도λ₯Ό 기반으둜 λ§Œλ“  λ§žμΆ€ν˜• 건물

즉, κΈ°λ³Έ λΌˆλŒ€λŠ” κ³΅μœ ν•˜κ³ ,
ν•„μš”ν•œ κΈ°λŠ₯은 자기 μŠ€νƒ€μΌλŒ€λ‘œ ν™•μž₯ν•˜λŠ” κ΅¬μ‘°μ˜ˆμš”.


πŸ“Œ 핡심 μš”μ•½ 정리

κ°œλ… μ„€λͺ…
Superclass λΆ€λͺ¨ 클래슀 (곡톡 κΈ°λŠ₯ 제곡)
Subclass μžμ‹ 클래슀 (κΈ°λŠ₯을 ν™•μž₯ν•˜κ±°λ‚˜ μž¬μ •μ˜ν•¨)
상속 클래슀 간에 κΈ°λŠ₯을 λ¬Όλ €μ£ΌλŠ” 것
Java 문법 class Child extends Parent { ... }

β˜• 마무리 ν•œ λ§ˆλ””

상속은 μžλ°”μ—μ„œ 정말 자주 μ“°μ΄λŠ” κ°œλ…μ΄μ—μš”.
λ„ˆλ¬΄ 겁먹지 λ§ˆμ‹œκ³ , λΆ€λͺ¨-μžμ‹ ꡬ쑰둜 μƒκ°ν•΄λ³΄μ„Έμš”!
λͺ‡ 번 직접 μ¨λ³΄μ‹œλ©΄ 금방 μ΅μˆ™ν•΄μ§€μ‹€ κ±°μ˜ˆμš” 😊