[JAVA] OOP 중간 퀴즈

oow·4일 전

JAVA

목록 보기
13/13

Quiz #1: 그림그리고 파악하기

  • A, B, C, D, F, G는 클래스이고 IA, IB, IC 는 인터페이스이며, 아래와 같은 관계가 성립한다.
    • A에는 a(), B에는 b(), C클래스에는 c()가 있다.
    • IA에는 ia(), IB에는 ib(), IC에는 ic() 가 정의되어 있는 상태이다.
    • 클래스 헤더 작성 연습 -> public class A
  • A is-a B: A는 B를 상속받는다. -> public class A extends B
  • C is-a D, F: JAVA에서는 다중 상속이 불가능하다.
  • A is-a B implements IB -> public class A extends B implements IB
  • C is-a B implements IA, IB, IC -> public class C extends B implements IA, IB, IC

  • 상위 인터페이스에서 정의된 기능을 구현하지 않으면 오류가 발생한다.
  • A 객체로 접근할 수 있는 메소드는 몇 개인가? -> a() b(), ib() 3개
  • C 객체로 접근할 수 있는 메소드는 몇 개인가? - c(), b(), ia(), ib(), ic() 5개



Quiz #2: 짱구-엄마-할머니

  • mom.요리하기() -> ?
    • 엄마와 짱구는 할머니 클래스에서 물려받은 요리하기를 오버라이딩했다.
    • mom은 짱구 객체를 생성하여 엄마로 참조한 것이다.
    • -> 객체가 짱구이고, 짱구에 요리하기()가 존재하므로 짱구가 오버라이딩한 요리하기()를 호출한다. -> 컵라면



Quiz #3. a, b, c를 이용하면 어떤 요리를 할 수 있을까요?

  • 상속 -> 객체 생성 시 쌓아가는 형태. 할머니 멤버로 객체 생성 + 엄마 붙이고 + 짱구 붙이기
  • 짱구 객체에서 요리하기()를 호출하면 짱구에서 정의된 요리하기() 호출
  • a. -> 할머니의 관점이므로 요리하기()만 가능 -> 짱구 객체이므로 컵라면
  • b. -> 엄마의 관점이므로 요리하기(), 할머니처럼요리하기() 가능 -> 짱구 객체이므로 각각 컵라면, 된장/고추장/김치
  • c. -> 짱구의 관점이므로 짱구 클래스에서 정의된 모든 요리하기 가능
    • c.요리하기(b)로 엄마 b를 인자로 받아도, 엄마 b는 짱구 객체를 참조하므로 컵라면

  • 엄마 클래스에 할머니처럼요리하기()가 있으므로 짱구 클래스에서 삭제해도 되지 않을까?
    • 가능! 정상적으로 할머니의 요리하기() 호출됨



Quiz #4. 아래 설계도를 관찰하고 테스트코드로 확인하세요

    1. 엄마 mom=new 엄마(); 후 mom.으로 볼 수 있는 멤버 속성/메소드는?
    • 할머니에서 상속받은 지팡이, 레시피 (빨간내복은 private, 요리하기()는 오버라이딩)
    • 엄마 클래스의 핸드폰압수bag (엄마 객체여도 엄마 클래스의 private은 클래스 소스코드 내부에서만 접근 가능 -> 캡슐화), 요리하기(), 청소하기(), 할머니처럼요리하기(), 핸드폰뺏기(짱구 짱)
    1. 짱구 s=new 짱구()' 후 s.으로 볼 수 있는 멤버 속성/메소드는?
    • 할머니에서 상속받은 지팡이, 레시피
    • 엄마에서 상속받은 핸드폰압수bag, 핸드폰뺏기(짱구 짱)
    • 짱구 클래스의 getPhone(핸드폰), setPhone(핸드폰 phone), 요리하기(), 청소하기(), ...
    • 마찬가지로 짱구 클래스의 phone은 private이므로 접근 불가능
    1. 엄마 mom=new 짱구(); 후 mom.으로 볼 수 있는 멤버 속성/메소드는?
    • 짱구 객체에 존재하며 엄마 클래스에서 접근할 수 있는 것
    • 지팡이, 레시피, 핸드폰압수bag, 요리하기(), 청소하기(), 할머니처럼요리하기(), 핸드폰뺏기(짱구 짱)

0개의 댓글