강아지,고양이,하마,햄스터등 이와같은 동물들의 공통적인 행동을 그룹화 싶을 때 어떻게 하면 좋을까? 먼저 하위클래스에 있는 고양이,강아지 클래스를 상위 클래스인 동물클래스로 상속시켜 오버라이딩을 시켜보자
package ch01.sec01;
public class Animal {
// 동물 무리를 지어서 움직이는 성향
public void roam() {}
// 소리
public void makeNoise() {}
// 먹이
public void eat() {}
}
package ch01.sec01;
public class Dog extends Animal {
}
package ch01.sec01;
public class Cat extends Animal {
}
동물 등록을 하는 MyAnimalList 클래스에 강아지나 고양이같은 추상 타입 객체를 새로 만들 수 없어서 추상타입의 객체들을 저장하기 위해 배열객체를 사용했다.
package ch01.sec01;
public class MyAnimalList {
// Animal 객체를 만드는 것이 아니고
// 추상 타입의 객체 인스턴스를 새로 만들수 없어서
// 고양이,강아지 타입을 저장하기 위해 따로 배열객체를 만들었다.
private Animal[] animals = new Animal[5];
private int nextIndex = 0;
public void add(Animal a) {
if(nextIndex < animals.length) {
animals[nextIndex] = a;
System.out.println("동물등록 완료 " + nextIndex);
nextIndex++;
}
}
}
동물 등록 테스트 코드
package ch01.sec01;
public class AnimalTestDrive {
public static void main(String[] args) {
MyAnimalList list = new MyAnimalList();
Dog a = new Dog(); // 강아지 객체로 생성
Cat c = new Cat(); // 고양이 객체로 생성
list.add(a); // 동물 리스트등록 메서드에 강아지 객체등록
list.add(c); // 동물 리스트등록 메서드에 고양이 객체등록
}
}

'OOP' 카테고리의 다른 글
파이썬 객체생성 초기화__init__ , SELF 매개변수 (0) | 2024.02.15 |
---|---|
인터페이스 설계도 (0) | 2024.02.01 |
PHP 객체의 속성에 객체 저장 (0) | 2024.01.30 |
PHP 게터 세터 (0) | 2024.01.30 |
PHP 클래스, 객체 (0) | 2024.01.30 |