반응형
다음 예제는 인터페이스(interface)를 이용한 간단한 C# 코드입니다.
인터페이스를 상속받는 클래스에서는 반드시 인터페이스에서 선언 메서드나 속성을 정의해야 합니다.
IShape 인터페이스를 다음과 같이 정의했습니다.
public interface IShape
{
double CalculateArea(); // 넓이 계산
double CalculatePerimeter(); // 둘레 계산
}
인터페이스를 상속받는 Circle과 Rectangle 클래스는 다음과 같이 정의했습니다.
public class Circle : IShape
{
public double Radius { get; set; }
public Circle(double radius)
{
Radius = radius;
}
public double CalculateArea()
{
return Math.PI * Radius * Radius;
}
public double CalculatePerimeter()
{
return 2 * Math.PI * Radius;
}
}
public class Rectangle : IShape
{
public double Width { get; set; }
public double Height { get; set; }
public Rectangle(double width, double height)
{
Width = width;
Height = height;
}
public double CalculateArea()
{
return Width * Height;
}
public double CalculatePerimeter()
{
return 2 * (Width + Height);
}
}
Main 메서드에서는 위에서 정의한 클래스를 다음과 같이 사용할 수 있습니다.
static void Main(string[] args)
{
IShape circle = new Circle(5);
Console.WriteLine("Circle Area: " + circle.CalculateArea());
Console.WriteLine("Circle Perimeter: " + circle.CalculatePerimeter());
IShape rectangle = new Rectangle(4, 6);
Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
Console.WriteLine("Rectangle Perimeter: " + rectangle.CalculatePerimeter());
}
전체 소스는 다음과 같습니다.
콘솔 응용프로그램으로 작성했습니다.
IShape.cs
using System;
namespace ConsoleApp1
{
public interface IShape
{
double CalculateArea();
double CalculatePerimeter();
}
// Implement the interface in a class
public class Circle : IShape
{
public double Radius { get; set; }
public Circle(double radius)
{
Radius = radius;
}
public double CalculateArea()
{
return Math.PI * Radius * Radius;
}
public double CalculatePerimeter()
{
return 2 * Math.PI * Radius;
}
}
public class Rectangle : IShape
{
public double Width { get; set; }
public double Height { get; set; }
public Rectangle(double width, double height)
{
Width = width;
Height = height;
}
public double CalculateArea()
{
return Width * Height;
}
public double CalculatePerimeter()
{
return 2 * (Width + Height);
}
}
}
Program.cs
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
IShape circle = new Circle(5);
Console.WriteLine("Circle Area: " + circle.CalculateArea());
Console.WriteLine("Circle Perimeter: " + circle.CalculatePerimeter());
IShape rectangle = new Rectangle(4, 6);
Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
Console.WriteLine("Rectangle Perimeter: " + rectangle.CalculatePerimeter());
}
}
}
출력된 결과입니다.
반응형
'C#' 카테고리의 다른 글
(C#) 인터페이스를 이용한 다중 상속 예제: ISwim IFly Animal Bird (0) | 2023.07.29 |
---|---|
(C#) 추상 클래스(abstract class) 예제 (0) | 2023.07.27 |
(C#) GDI+, 이미지 출력하기 (0) | 2023.07.18 |
(C#) 그래픽: 사각형 패턴 채우기,그림 채우기, 문자열 출력하기 (0) | 2023.06.25 |
(C#) 다운로드 폴더 경로 가져오기 (0) | 2023.06.25 |