다음의 Java 프로그램에서 사용되지 않은 기법은?class Adder… | [계리직 컴퓨터일반] 10년 1회차 기출문제 상세 페이지
1[계리직 컴퓨터일반] 10년 1회차
다음의 Java 프로그램에서 사용되지 않은 기법은?class Adder {
public int add(int a, int b) { return a+b}
public double add(double a, double b) {
return a+b}
}
class Computer extends Adder {
private int x;
public int calc(int a, int b, int c) { if (a ==
1) return add(b, c)
else return x;}
Computer() { x = 0}
}
public class Adder_Main {
public static void main(String args[]) {
Computer c = new Computer()
System.out.println("100 + 200 = " +
c.calc(1, 100, 200))
System.out.println("5.7 + 9.8 = " +
c.add(5.7, 9.8))
}
}
1
캡슐화(Encapsulation)
2
상속(Inheritance)
3
오버라이딩(Overriding)
4
오버로딩(Overloading)
해설
이 프로그램에 쓰이지 않은 기법은 오버라이딩(Overriding)이다.
오버라이딩은 하위 클래스가 상위 클래스의 메서드를 같은 시그니처로 재정의하는 것인데, Computer 클래스는 calc라는 새 메서드만 추가하고 Adder의 add를 다시 정의하지 않는다.
- 캡슐화: Computer의 필드 x를 private으로 숨기고 메서드를 통해서만 값을 쓴다.
- 상속: Computer가 extends Adder로 Adder의 add 메서드를 물려받아 사용한다.
- 오버로딩: Adder에 매개변수 자료형이 다른 add(int, int)와 add(double, double)가 함께 정의되어 있다.
오류나 개정된 내용이 보이면 알려주세요