프로그래밍 노트

[C#] Interface 예제 본문

C#/기초

[C#] Interface 예제

떡잎 2016. 7. 9. 18:24





우선 Car라는 클래스를 만들고 그 클래스를 사용하는 Run이라는 함수를 만들어 본다.


private void Form1_Load(object sender, EventArgs e)
{
Car a = new Car();
Run(a);
Close();
}
public void Run(Car car)
{
MessageBox.Show("run!");
}
public class Car
{
}


이번에는 Bike라는 클래스를 만들고 그 클래스를 사용하는 Run이라는 함수를 만들어 본다.
Run을 표시하기 위해 Car를 위한 것과 Bike를 위한 것이 두 개가 필요하다.

private void Form1_Load(object sender, EventArgs e)
{
Car a = new Car();
Bike b = new Bike();
carRun(a);
bikeRun(b);
Close();
}
public void carRun(Car car)
{
MessageBox.Show("run!");
}
public void bikeRun(Bike bike)
{
MessageBox.Show("run!");
}
public class Car
{
}
public class Bike
{
}


이런 것을 쉽게 사용하기 위해서는 interface를 사용하면 쉽게 아래와 같이 해결할 수 있다.
Vehicle이라는 interface를 만들어 Car나 Bike는 Vehicle이라는 interface를 가지고 있다는 것을 정의한다.
private void Form1_Load(object sender, EventArgs e)
{
Car a = new Car();
Bike b = new Bike();
Run(a);
Run(b);
Close();
}
public interface Vehicle
{
}
public void Run(Vehicle v)
{
MessageBox.Show("run!");
}
public class Car : Vehicle
{
}
public class Bike : Vehicle
{
}

Interface는 아래와 같이 Method를 정의할 수 있다.
Interface는 실제 함수를 쓸 수는 없고 함수의 형태만 정의할 수 있다.
Interface를 상속하는 클래스에서 Interface에 정의된 함수를 반드시 구현해야만 된다.

private void Form1_Load(object sender, EventArgs e)
{
Vehicle a = new Car();
Vehicle b = new Bike();
Run(a);
Run(b);
Close();
}
public void Run(Vehicle vehicle)
{
MessageBox.Show(vehicle.getName() + " run!");
}
public interface Vehicle
{
String getName();
}
public class Car : Vehicle
{
public String getName()
{
return "Car";
}
}
public class Bike : Vehicle
{
public String getName()
{
return "Bike";
}
}














Comments