IT/Java

자바 추상메소드, 인터페이스를 이해할 수 있는 순차적 예제1

노마드오브 2018. 7. 23. 21:15

package step1;



class Animal {

String food; // "meat"(고기)   "grass"(풀)

int hunger;  // 배고픈 정도

void makeNoise() {

System.out.println("소리내기");

}

void eat() { // 육식동물, 채식동물

System.out.println("음식을 먹는다.");

}

void sleep() {

System.out.println("잠을 잔다.");

}

void roam() {

System.out.println("돌아다닌다.");

}

}


/*

 Animal을 상속받는 하위클래스

 : Dog, Wolf, Hippo(하마), Cat, Tiger(호랑이), Lion(사자)

*/


class Hippo extends Animal {

@Override

void makeNoise() {

System.out.println("하마스럽게 소리내기~~");

}

@Override

void eat() {

System.out.println("하마스럽게 먹는다.");

}

}


class DogLike extends Animal { // 개과 동물

@Override

void roam() {

System.out.println("무리지어 돌아다닌다.");

}

} // DogLike class

class CatLike extends Animal { // 고양이과 동물

@Override

void roam() {

System.out.println("혼자서 돌아다닌다.");

}

} // CatLike class


class Dog extends DogLike {

@Override

void makeNoise() {

System.out.println("멍멍~!!");

}

@Override

void eat() {

System.out.println("강아지스럽게 먹는다.");

}

}

class Wolf extends DogLike {

@Override

void makeNoise() {

System.out.println("아우~~~~!");

}

@Override

void eat() {

System.out.println("늑대스럽게 먹는다.");

}

}


class Cat extends CatLike {

@Override

void makeNoise() {

System.out.println("야옹~~!");

}

@Override

void eat() {

System.out.println("고양이스럽게 먹는다.");

}

}



public class Test {


public static void main(String[] args) {

// TODO Auto-generated method stub


}


}