관리 메뉴

Algo μ“°μž

07. 상속 λ³Έλ¬Έ

πŸ’» Programming Language/C#

07. 상속

S.Honey 2022. 4. 6. 09:19
namespace inheritEx
{
    class Parent
    // 상속을 ν•΄μ£ΌλŠ” 클래슀λ₯Ό λΆ€λͺ¨, 슈퍼, μƒμœ„ 클래슀라고 μΌμ»«λŠ”λ‹€.
    // 기반(Base) ν΄λž˜μŠ€λΌκ³ λ„ λΆ€λ₯Έλ‹€.
    {

        public Parent()
        {
            Console.WriteLine("Parent μƒμ„±μž 호좜");
        }
        ~Parent()
        {
            Console.WriteLine("Parent μ’…λ£Œμž 호좜");
        }

        public void showInfo()
        {
            Console.WriteLine("Parent Class");
        }
    }

    class Child : Parent
    // 상속을 λ°›λŠ” 클래슀λ₯Ό μžμ‹(νŒŒμƒ)클래슀라고 μΌμ»«λŠ”λ‹€.
    // 상속을 받을 λ•Œμ—λŠ” : ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ μƒμ†λ°›λŠ”λ‹€.
    // 상속받은 μ½”λ“œλ₯Ό μž¬ν™œμš©ν•΄μ„œ μžμ‹ μ—κ²Œ λ§žλŠ” μ½”λ“œλ‘œ μˆ˜μ •ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ‹€.
    {
        public Child()
        {
            Console.WriteLine("Child μƒμ„±μž 호좜");
        }

        ~Child()
        {
            Console.WriteLine("Child μ’…λ£Œμž 호좜");
        }

        public void showInfo() { Console.WriteLine("Child Class"); }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Child a = new Child();
            a.showInfo();
        }
    }
}
Output

Parent μƒμ„±μž 호좜
Child μƒμ„±μž 호좜
Child Class

  • 상속 : λΆ€λͺ¨λ‘œλΆ€ν„° 상속을 받듯이 ν”„λ‘œκ·Έλž˜λ°μ—μ„œλ„ λΉ„μŠ·ν•˜κ²Œ λΆ€λͺ¨ν΄λž˜μŠ€μ—μ„œ μžμ‹ν΄λž˜μŠ€μ—κ²Œ 가지고 μžˆλŠ” ν•„λ“œλ‚˜ λ©”μ†Œλ“œλ₯Ό μ „λ‹¬ν•¨μœΌλ‘œμ¨ μž¬ν™œμš© ν•˜λŠ”κ²ƒ.
  • 상속을 ν•΄μ£ΌλŠ” 클래슀λ₯Ό λΆ€λͺ¨ 클래슀(ν˜Ήμ€ 슈퍼(super)클래슀, μƒμœ„ν΄λž˜μŠ€, 기반(Base)클래슀)라고 μΌμ»«λŠ”λ‹€.
  • 상속을 λ°›λŠ” 클래슀λ₯Ό μžμ‹ν΄λž˜μŠ€(ν˜Ήμ€ νŒŒμƒν΄λž˜μŠ€, ν•˜μœ„ν΄λž˜μŠ€) 라고 μΌμ»«λŠ”λ‹€.
  • 상속을 받을 λ•Œμ—λŠ” : ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ λΆ€λͺ¨ν΄λž˜μŠ€λ₯Ό 상속 λ°›λŠ”λ‹€.
  • μƒμ†μ˜ κ°€μž₯ 큰 λͺ©μ μ€ λΆ€λͺ¨ν΄λž˜μŠ€μ˜ μ½”λ“œλ₯Ό μž¬ν™œμš©ν•˜μ—¬ μžμ‹ν΄λž˜μŠ€μ—κ²Œ λ§žλŠ” μ½”λ“œλ‘œ μˆ˜μ •ν•΄ μ‚¬μš©ν•¨μ— μžˆλ‹€.(μž¬ν™œμš©)