1. 출력 값을 작성하시오.

public class OverloadingExample {
   
    public int add(int a, int b) {
        return a * b;
    }
   
    public int add(int a, int b, int c) {
        return a + b + c;
    }
}



public class Main {
    public static void main(String[] args) {
        OverloadingExample example = new OverloadingExample();
        System.out.println("두 정수의 합: " + example.add(5, 3));
        System.out.println("세 정수의 합: " + example.add(10, 20, 30));
    }
}
정답

두 정수의 합: 15
세 정수의 합: 60

2. 출력 값을 작성하시오.

public class Calculation {
   
    public int multiply(int a, int b) {
        return a * b;
    }
   
    public int add(int a, int b, int c) {
        return a + b + c;
    }




    public int multiplyAndAdd(int x, int y, int z) {
        int sum = add(x, y, z);
        return multiply(sum, z);
    }
}




public class Main {
    public static void main(String[] args) {
        Calculation calculation = new Calculation();




        int product = calculation.multiply(5, 3);
        System.out.println(product);




        int sum = calculation.add(10, 20, 30);
        System.out.println(sum);




        int result = calculation.multiplyAndAdd(5, 3, 2);
        System.out.println(result);
    }
}
정답

15
60
20

3. 출력 값을 작성하시오.

public class Calculation {
   
    public int addAndMultiply(int a, int b) {
        return (a + b) * (a + b);
    }
   
    public int add(int a, int b, int c) {
        return a + b + c;
    }



    public int multiplyBySum(int x, int y, int z, int multiplier) {
        int sum = add(x, y, z);
        return sum * multiplier;
    }
}



public class Main {
    public static void main(String[] args) {
        Calculation calculation = new Calculation();



        int result1 = calculation.addAndMultiply(5, 3);
        System.out.print(result1);



        int result2 = calculation.add(10, 20, 30);
        System.out.print(result2);



        int result3 = calculation.multiplyBySum(1, 2, 3, 2);
        System.out.println(result3);
    }
}
정답

646012

4. 출력 값을 작성하시오.

class Shape {
    public double calculateArea() {
        return 0.0;
    }
}



class Circle extends Shape {
    private double radius;



    public Circle(double radius) {
        this.radius = radius;
    }



    public double calculateArea() {
        return 3 * radius * radius;
    }
}



class Rectangle extends Shape {
    private double width;
    private double height;



    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }



    public double calculateArea() {
        return width * height;
    }
}



public class Main {
    public static void main(String[] args) {
        Circle circle = new Circle(5.0);
        System.out.println("Circle의 넓이: " + circle.calculateArea());



        Rectangle rectangle = new Rectangle(4.0, 6.0);
        System.out.println("Rectangle의 넓이: " + rectangle.calculateArea());
    }
}
정답

Circle의 넓이: 75.0
Rectangle의 넓이: 24.0

5. 출력 값을 작성하시오.

class Animal {
    public void makeSound() {
        System.out.println("동물 소리");
    }
}



class Dog extends Animal {
    public void makeSound() {
        System.out.println("멍멍");
    }
}



class Cat extends Animal {
    public void makeSound() {
        System.out.println("야옹");
    }
}



public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.makeSound();



        Cat cat = new Cat();
        cat.makeSound();
    }
}
정답

멍멍
야옹

6. 출력 값을 작성하시오.

class Vehicle {
    public void move() {
        System.out.println("이동합니다.");
    }
}



class Car extends Vehicle {
    public void move() {
        System.out.println("도로를 달립니다.");
    }
}



class Boat extends Vehicle {
    public void move() {
        System.out.println("물을 헤엄칩니다.");
    }
}



public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        car.move();


        Boat boat = new Boat();
        boat.move();
    }
}
정답

도로를 달립니다.
물을 헤엄칩니다.

7. 출력 값을 작성하시오.

class Vehicle {
    private int speed;



    public void move() {
        System.out.println("이동합니다.");
    }



    public int getSpeed() {
        return speed;
    }



    public void setSpeed(int speed) {
        this.speed = speed;
    }
}



class Car extends Vehicle {
    @Override
    public void move() {
        System.out.println("도로를 달립니다.");
    }



    public void accelerate(int amount) {
        int newSpeed = getSpeed() + amount;
        setSpeed(newSpeed);
    }



    public void decelerate(int amount) {
        int newSpeed = getSpeed() - amount;
        setSpeed(newSpeed);
    }
}



class Boat extends Vehicle {
    @Override
    public void move() {
        System.out.println("물을 헤엄칩니다.");
    }



    public void accelerate(int amount) {
        int newSpeed = getSpeed() + amount;
        setSpeed(newSpeed);
    }



    public void decelerate(int amount) {
        int newSpeed = getSpeed() - amount;
        if (newSpeed < 0) {
            newSpeed = 0;
        }
        setSpeed(newSpeed);
    }
}



public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        car.accelerate(20);
        car.move();
        System.out.println("현재 속도: " + car.getSpeed());



        Boat boat = new Boat();
        boat.decelerate(10);
        boat.move();
        System.out.println("현재 속도: " + boat.getSpeed());
    }
}
정답

도로를 달립니다.
현재 속도: 20
물을 헤엄칩니다.
현재 속도: 0

8. 출력 값을 작성하시오.

class Parent {
    static String message = "부모 클래스의 메시지";
    String instanceMessage = "부모 클래스의 인스턴스 메시지";



    static void printMessage() {
        System.out.println(message);
    }



    void printInstanceMessage() {
        System.out.println(instanceMessage);
    }
}



class Child extends Parent {
    static String message = "자식 클래스의 메시지";
    String instanceMessage = "자식 클래스의 인스턴스 메시지";



    static void printMessage() {
        System.out.println(message);
    }



    void printInstanceMessage() {
        System.out.println(instanceMessage);
    }
}



public class Main {
    public static void main(String[] args) {
        Parent.printMessage();
        Parent parent = new Parent();
        parent.printInstanceMessage();



        Child.printMessage();
        Child child = new Child();
        child.printInstanceMessage();
    }
}
정답

부모 클래스의 메시지
부모 클래스의 인스턴스 메시지
자식 클래스의 메시지
자식 클래스의 인스턴스 메시지

9. 출력 값을 작성하시오.

class Parent {
    static String message = "부모 클래스의 메시지";
    String instanceMessage = "부모 클래스의 인스턴스 메시지";



    static void printMessage() {
        System.out.println(message);
    }



    void printInstanceMessage() {
        System.out.println(instanceMessage);
    }
}



class Child extends Parent {
    static String message = "자식 클래스의 메시지";
    String instanceMessage = "자식 클래스의 인스턴스 메시지";



    static void printMessage() {
        System.out.println(message);
    }



    void printInstanceMessage() {
        System.out.println(instanceMessage);
    }
}


public class Main {
    public static void main(String[] args) {
        Parent temp = new Child();
        temp.printMessage();
        temp.printInstanceMessage();
    }
}
정답

부모 클래스의 메시지
자식 클래스의 인스턴스 메시지

10. 출력 값을 작성하시오.

class Parent {
    static int number = 10;
    int instanceNumber = 20;



    static void multiplyByTwo() {
        System.out.println("부모 클래스의 정적 메서드 결과: " + (number * 2));
    }



    void multiplyByThree() {
        System.out.println("부모 클래스의 인스턴스 메서드 결과: " + (instanceNumber * 3));
    }
}



class Child extends Parent {
    static int number = 5;
    int instanceNumber = 15;



    static void multiplyByTwo() {
        System.out.println("자식 클래스의 정적 메서드 결과: " + (number * 2));
    }



    void multiplyByThree() {
        System.out.println("자식 클래스의 인스턴스 메서드 결과: " + (instanceNumber * 3));
    }
}



public class Main {
    public static void main(String[] args) {
        Parent temp = new Child();
        temp.multiplyByTwo();
        temp.multiplyByThree();
    }
}
정답

부모 클래스의 정적 메서드 결과: 20
자식 클래스의 인스턴스 메서드 결과: 45