0Pricing
C# Academy · 강의

다형성과 메서드 재정의

메서드 재정의로 유연하고 재사용 가능한 코드를 만드는 다형성을 익혀 보세요

다형성과 메서드 재정의은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 7개 중 7번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 7개의 강의가 포함되어 있습니다.

다형성 소개

다형성과 메서드 재정의

다음 수업에 오신 것을 환영합니다! 이 수업에서는 객체 지향 프로그래밍의 핵심 개념인 다형성과, 다형성을 통해 메서드를 재정의하여 유연하고 재사용 가능한 코드를 작성하는 방법을 배웁니다. 시작해 보겠습니다!

다형성과 메서드 재정의 — 일러스트레이션 1

다형성이란?

다형성이란?

다형성은 "여러 형태"를 의미하며, 서로 다른 클래스의 객체를 공통 기반 클래스의 객체로 취급할 수 있게 합니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.

예시: 메서드는 작업 중인 객체의 유형에 따라 다르게 동작할 수 있습니다.

핵심 내용: C#에서는 메서드 재정의와 인터페이스를 통해 다형성을 구현합니다.

메서드 재정의 이해하기

메서드 재정의 이해하기

메서드 재정의를 사용하면 파생 클래스에서 기반 클래스에 이미 정의된 메서드의 구체적인 구현을 제공할 수 있습니다. 기반 클래스에서는 virtual 키워드를 사용하고, 파생 클래스에서는 override 키워드를 사용하십시오. 예시는 다음과 같습니다.

팁: 메서드 재정의를 사용하면 참조 유형과 관계없이 객체에 맞는 메서드가 호출됩니다.

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("The cat meows.");
    }
}

class Program {
    static void Main() {
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        myDog.Speak(); // Outputs: The dog barks.
        myCat.Speak(); // Outputs: The cat meows.
    }
}

다형성 사용하기

다형성 사용하기

다형성을 사용하면 공통 인터페이스를 통해 다양한 유형의 객체와 함께 작동하는 코드를 작성할 수 있습니다. 예시는 다음과 같습니다.

핵심 내용: 다형성을 사용하면 더 일반적이고 재사용 가능한 코드를 작성할 수 있습니다.

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("The cat meows.");
    }
}

class Program {
    static void Main() {
        Animal[] animals = { new Dog(), new Cat() };

        foreach (Animal animal in animals) {
            animal.Speak(); // Calls the appropriate method for each object
        }
    }
}

재정의와 함께 기반 키워드 사용하기

재정의와 함께 기반 키워드 사용하기

base 키워드는 재정의된 메서드에서 기반 클래스의 메서드를 호출할 때 사용합니다. 예시는 다음과 같습니다.

팁: 재정의된 메서드에서 기반 클래스의 기능을 유지하려면 base를 사용하십시오.

using System;

class Animal {
    public virtual void Speak() {
        Console.WriteLine("The animal makes a sound.");
    }
}

class Dog : Animal {
    public override void Speak() {
        base.Speak(); // Calls the base class method
        Console.WriteLine("The dog barks.");
    }
}

class Program {
    static void Main() {
        Dog myDog = new Dog();
        myDog.Speak(); // Outputs: The animal makes a sound. The dog barks.
    }
}

추상 클래스와 메서드

추상 클래스와 메서드

추상 클래스는 파생 클래스를 위한 설계도를 제공합니다. 추상 메서드를 포함할 수 있으며, 추상 메서드는 파생 클래스에서 재정의해야 합니다. 예시는 다음과 같습니다.

핵심 내용: 추상 메서드는 파생 클래스가 자체 구현을 제공하도록 강제합니다.

using System;

abstract class Animal {
    public abstract void Speak(); // Abstract method
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("The dog barks.");
    }
}

class Program {
    static void Main() {
        Animal myDog = new Dog();
        myDog.Speak(); // Outputs: The dog barks.
    }
}

연습 과제

연습 과제

CalculateArea()라는 추상 메서드를 포함하는 추상 클래스 Shape를 만드십시오. CalculateArea()를 구현하는 Rectangle과 Circle 클래스를 파생하십시오. 예시는 다음과 같습니다.

using System;

abstract class Shape {
    public abstract double CalculateArea();
}

class Rectangle : Shape {
    public double Width { get; set; }
    public double Height { get; set; }

    public override double CalculateArea() {
        return Width * Height;
    }
}

class Circle : Shape {
    public double Radius { get; set; }

    public override double CalculateArea() {
        return Math.PI * Radius * Radius;
    }
}

class Program {
    static void Main() {
        Shape rectangle = new Rectangle { Width = 4, Height = 5 };
        Shape circle = new Circle { Radius = 3 };

        Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
        Console.WriteLine("Circle Area: " + circle.CalculateArea());
    }
}

다형성 모범 사례

다형성 모범 사례

다음은 몇 가지 모범 사례입니다.

  • 코드를 단순화하고 중복을 피하려면 다형성을 사용하십시오.
  • 파생 클래스에서 구체적인 동작이 필요한 메서드만 재정의하십시오.
  • 파생 클래스 전체에서 공유되는 인터페이스에는 추상 클래스와 메서드를 사용하십시오.

팁: 다형성을 사용하면 코드를 더 쉽게 확장하고 유지 관리할 수 있습니다.

잘하셨습니다!

잘하셨습니다!

축하합니다! 유연하고 재사용 가능한 코드를 작성하기 위해 다형성과 메서드 재정의를 사용하는 방법을 배웠습니다. 다음 수업에서는 추상화를 달성하고 여러 동작을 구현하기 위해 인터페이스를 사용하는 방법을 살펴보겠습니다. 계속 코딩해 보십시오!

다형성과 메서드 재정의 — 일러스트레이션 10

자주 묻는 질문

“다형성과 메서드 재정의” 강의는 무료인가요?

네 — “다형성과 메서드 재정의” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 7개의 강의가 포함되어 있습니다.

“다형성과 메서드 재정의”에서 뭘 배우나요?

메서드 재정의로 유연하고 재사용 가능한 코드를 만드는 다형성을 익혀 보세요 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 7개 중 7번째 강의입니다.

“다형성과 메서드 재정의” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 객체 지향 프로그래밍이란 무엇인가요?
  2. 클래스와 객체 정의하기
  3. 속성과 메서드 이해하기
  4. C#의 생성자
  5. 캡슐화와 접근 제한자
  6. 상속: 코드 재사용하기
  7. 다형성과 메서드 재정의
← C# Academy(으)로 돌아가기