static void attackCount(Marine marine, int cnt) { for (int i = 0; i < cnt; i++) { marine.attack(); } }
static void Main(string[] args) { // 부모 클래스 변수 = 자식 객체 // 1) 묶어서 관리하기가 용이하니까 // 2) 매개변수로 넘길 때 부모 클래스 변수로 사용가능 StarUnit[] starArr = new StarUnit[3]; starArr[0] = new StarUnit(); starArr[1] = new Marine(); starArr[2] = new Hydra(); attackCount(starArr[0], 3); attackCount(starArr[1], 5); attackCount(starArr[2], 7); }
static void Main(string[] args) { // 부모 클래스 변수 = 자식 객체 // 1) 묶어서 관리하기가 용이하니까 // 2) 매개변수로 넘길 때 부모 클래스 변수로 사용가능 //유닛들이 계속 증가할 때마다 // 해당 attackCount메서드도 추가해야 한다 // => 코드를 손댈 것이 많다 // => 100개 유닛 증가 => 100개 메서드도 증가 StarUnit starUnit = new StarUnit(); Marine marine = new Marine(); Hydra hydra = new Hydra(); attackCount(starUnit, 3); attackCount(marine, 5); attackCount(hydra, 7); }
static void Main(string[] args) { //[다향성] // 부모 클래스 변수 = 자식 객체 // 1) 묶어서 관리하기가 용이하니까 // 2) 매개변수로 넘길 때 부모 클래스 변수로 사용가능 // 3) virtual, override를 해주면 // 클래스 변수에 따른 동작이 아니라 // 객체에 따른 동작이 진행된다. //유닛들이 계속 증가할 때마다 // 해당 attackCount메서드도 추가해야 한다 // => 코드를 손댈 것이 많다 // => 100개 유닛 증가 => 100개 메서드도 증가 // => 기존 메서드마다 모두 계속 만들어야 한다 StarUnit[] starArr = new StarUnit[3]; starArr[0] = new StarUnit(); starArr[1] = new Marine(); starArr[2] = new Hydra(); attackCount(starArr[0], 3); attackCount(starArr[1], 5); attackCount(starArr[2], 7); }