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";}}