JAVA

java_추상 클래스(실습예제)_22.06.13(day15)

양빵빵 2022. 6. 13. 16:59

 

======= 아래는 선생님이 풀이해주신 답안========

package com.kh.practice3.model.vo;

public abstract class Animal {

    private String name;
    private String kinds;

    protected Animal() {
    }

    protected Animal(String name, String kinds) {
        this.name = name;
        this.kinds = kinds;
    }

    public abstract void speak();

    @Override
    public String toString() {
        return String.format("저의 이름은 %s이고, 종류는 %s입니다.", name, kinds);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getKinds() {
        return kinds;
    }

    public void setKinds(String kinds) {
        this.kinds = kinds;
    }
}
package com.kh.practice3.model.vo;

public class Dog extends Animal {

    private int weight;

    public static final String PLACE;

    static {
        PLACE = "애견카페";
    }

    public Dog() {
    }

    public Dog(String name, String kinds, int weight) {
        super(name, kinds);
        this.weight = weight;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    @Override
    public void speak() {
        System.out.printf("%s 몸무게는 %dkg입니다.\n", super.toString(), weight);
    }
}
package com.kh.practice3.model.vo;

public class Cat extends Animal {

    private String location;
    private String color;

    public Cat() {
    }

    public Cat(String name, String kinds, String location, String color) {
        super(name, kinds);
        this.location = location;
        this.color = color;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    @Override
    public void speak() {
        System.out.printf("%s %s에 서식하며, 색상은 %s입니다.\n", super.toString(), location, color);
    }
}

 

package com.kh.practice3.controller;

import com.kh.practice3.model.vo.Animal;
import com.kh.practice3.model.vo.Cat;
import com.kh.practice3.model.vo.Dog;

public class AnimalManager {

    public static void main(String[] args) {

        Animal[] animals = new Animal[5];
        animals[0] = new Dog("뽀삐", "푸들", 3);
        animals[1] = new Cat("나비", "코숏", "서울시 중구", "노랑색");
        animals[2] = new Cat("냥냥이", "러시안블루", "서울시 강서구", "회색");
        animals[3] = new Dog("불도긔", "불독", 5);
        animals[4] = new Dog("치치", "치와와", 2);

        for (Animal a : animals) {
            a.speak();
        }

    }
}