diff --git "a/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/AbstractAnimal.java" "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/AbstractAnimal.java" new file mode 100644 index 0000000..56cb20f --- /dev/null +++ "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/AbstractAnimal.java" @@ -0,0 +1,8 @@ +package poly.ex4; + +public abstract class AbstractAnimal { + + // 순수 추상 클래스 + public abstract void sound(); + public abstract void move(); +} diff --git "a/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/AbstractMain.java" "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/AbstractMain.java" new file mode 100644 index 0000000..fbab6cd --- /dev/null +++ "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/AbstractMain.java" @@ -0,0 +1,33 @@ +package poly.ex4; +public class AbstractMain { + public static void main(String[] args) { +// 추상클래스 생성 불가 +// AbstractAnimal animal = new AbstractAnimal(); + + Dog dog = new Dog(); + Cat cat = new Cat(); + Caw caw = new Caw(); + + soundAnimal(dog); + soundAnimal(cat); + soundAnimal(caw); + + moveAnimal(dog); + moveAnimal(cat); + moveAnimal(caw); + } + + // 변하지 않는 부분 + private static void soundAnimal(AbstractAnimal animal) { + System.out.println("동물 소리 테스트 시작"); + animal.sound(); + System.out.println("동물 소리 테스트 종료"); + } + + // 변하지 않는 부분 + private static void moveAnimal(AbstractAnimal animal) { + System.out.println("동물 이동 테스트 시작"); + animal.move(); + System.out.println("동물 이동 테스트 종료"); + } +} diff --git "a/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Cat.java" "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Cat.java" new file mode 100644 index 0000000..f7a5ca1 --- /dev/null +++ "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Cat.java" @@ -0,0 +1,13 @@ +package poly.ex4; + +public class Cat extends AbstractAnimal { + @Override + public void sound() { + System.out.println("냐옹"); + } + + @Override + public void move() { + System.out.println("고양이 이동"); + } +} diff --git "a/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Caw.java" "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Caw.java" new file mode 100644 index 0000000..f8b441b --- /dev/null +++ "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Caw.java" @@ -0,0 +1,13 @@ +package poly.ex4; + +public class Caw extends AbstractAnimal { + @Override + public void sound() { + System.out.println("음메"); + } + + @Override + public void move() { + System.out.println("소 이동"); + } +} diff --git "a/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Dog.java" "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Dog.java" new file mode 100644 index 0000000..4125495 --- /dev/null +++ "b/\352\271\200\354\225\204\353\246\260/java-basic/src/poly/ex4/Dog.java" @@ -0,0 +1,13 @@ +package poly.ex4; + +public class Dog extends AbstractAnimal { + @Override + public void sound() { + System.out.println("멍멍"); + } + + @Override + public void move() { + System.out.println("개 이동"); + } +}