πŸ“•ν΄λž˜μŠ€ 상속

dev_itzel_02✨·2024λ…„ 8μ›” 26일
post-thumbnail

πŸ·οΈμƒμ†

κΈ°μ‘΄ 클래슀의 ν•„λ“œμ™€ λ©”μ†Œλ“œλ₯Ό μƒˆλ‘œμš΄ ν΄λž˜μŠ€μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” κΈ°λŠ₯

  • 'is-a' 관계
  • 클래슀 상속을 톡해 μ½”λ“œ μž¬μ‚¬μš©, ν™•μž₯, μˆ˜μ •μ„ μš©μ΄ν•˜κ²Œ 함.
  • μžλ°”μ—μ„œλŠ” 단일 μƒμ†λ§Œ μ§€μ›ν•˜λ©° ν•˜λ‚˜μ˜ ν΄λž˜μŠ€λŠ” 였직 ν•˜λ‚˜μ˜ λΆ€λͺ¨ 클래슀만 κ°€μ§ˆ 수 있음.
  • extends ν‚€μ›Œλ“œ μ‚¬μš©

μƒμ†μ˜ λͺ©μ  및 ν•„μš”μ„±πŸ§

  1. μ½”λ“œ μž¬μ‚¬μš©: κΈ°μ‘΄ 클래슀λ₯Ό μ‚¬μš©ν•΄ μƒˆλ‘œμš΄ 클래슀 생성
  2. μ½”λ“œ ν™•μž₯: μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€
  3. μœ μ§€ 보수 용이: 쀑볡 μ½”λ“œ κ°μ†Œ, 가독성과 μœ μ§€ λ³΄μˆ˜μ„± ν–₯상
  4. λ‹€ν˜•μ„± κ΅¬ν˜„: λΆ€λͺ¨ 클래슀 νƒ€μž…μ˜ μ°Έμ‘° λ³€μˆ˜λ‘œ μžμ‹ 클래슀 객체 μ°Έμ‘° κ°€λŠ₯
  5. 계측적 ꡬ쑰 ν‘œν˜„: μ½”λ“œ ꡬ쑰 μ΄ν•΄ν•˜κΈ° 쉽도둝 함

πŸ·οΈλΆ€λͺ¨ 클래슀

μžμ‹ ν΄λž˜μŠ€κ°€ μƒμ†λ°›λŠ” 클래슀

  • λΆ€λͺ¨ 클래슀의 private ν•„λ“œλ‚˜ λ©”μ†Œλ“œλŠ” 상속 X ➑️ protected인 경우 κ°€λŠ₯
  • λΆ€λͺ¨ 클래슀의 μƒμ„±μžμ™€ μ΄ˆκΈ°ν™” 블둝은 μƒμ†λ˜μ§€ μ•ŠμœΌλ©°, 각 μžμ‹ 클래슀의 μƒμ„±μžμ—μ„œ 호좜됨

πŸ·οΈμžμ‹ 클래슀

λΆ€λͺ¨ 클래슀의 ν•„λ“œμ™€ λ©”μ†Œλ“œλ₯Ό μƒμ†λ°›λŠ” 클래슀

  • λΆ€λͺ¨ 클래슀의 ν•„λ“œμ™€ λ©”μ†Œλ“œλ₯Ό κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜κ±°λ‚˜, ν•„μš”μ— 따라 μ˜€λ²„λΌμ΄λ”©ν•˜μ—¬ λ³€κ²½ν•˜μ—¬ μ‚¬μš© κ°€λŠ₯.
// λΆ€λͺ¨ 클래슀
class Animal {
    public void eat() {
        System.out.println("Eating...");
    }
}
// μžμ‹ 클래슀
class Dog extends Animal {
    // μƒˆλ‘œμš΄ 클래슀 생성 
    public void bark() {
        System.out.println("Barking...");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.eat(); // λΆ€λͺ¨ 클래슀 λ©”μ†Œλ“œ
        myDog.bark(); // μžμ‹ 클래슀 λ©”μ†Œλ“œ
    }
}

πŸ·οΈμ˜€λ²„λΌμ΄λ”©

μžμ‹ ν΄λž˜μŠ€μ—μ„œ λΆ€λͺ¨ 클래슀의 λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ν•˜λŠ” 것

  • μ˜€λ²„λΌμ΄λ”© 된 λ©”μ†Œλ“œλŠ” λΆ€λͺ¨ 클래슀의 λ©”μ†Œλ“œμ™€ 이름, λ§€κ°œλ³€μˆ˜, λ°˜ν™˜ νƒ€μž…μ΄ κ°™μ•„μ•Ό 함.
  • λΆ€λͺ¨ 클래슀의 λ©”μ†Œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜ν•˜λ©΄ λΆ€λͺ¨ 클래슀의 λ©”μ†Œλ“œ λŒ€μ‹  μžμ‹ 클래슀의 λ©”μ†Œλ“œκ°€ 호좜됨.
  • super ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ˜€λ²„λΌμ΄λ”© 된 λΆ€λͺ¨ 클래슀의 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  수 있음.
  • private, final, static λ©”μ†Œλ“œλŠ” μ˜€λ²„λΌμ΄λ”© ν•  수 μ—†μŒ.

πŸ·οΈμ˜€λ²„λ‘œλ”©

같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬ 개 μ •μ˜ν•˜λ˜, λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…, μˆœμ„œλ‚˜ κ°œμˆ˜κ°€ λ‹€λ₯Έ 것

  • μ˜€λ²„λ‘œλ”©μ„ 톡해 같은 κΈ°λŠ₯을 ν•˜λŠ” λ©”μ†Œλ“œμ˜ 이름을 톡일할 수 μžˆμ–΄ μ½”λ“œμ˜ 가독성이 높아짐.
profile
πŸœπŸ‘£steadinessπŸœπŸ‘£

0개의 λŒ“κΈ€