ingyuseong/Jav-A-Bom

[Part 1][5주차]다형성, 추상 메서드/클래스, 인터페이스, 인터페이스 vs 구현

Closed this issue · 6 comments

Contents

다형성, 추상 메서드/클래스, 인터페이스, 인터페이스 vs 구현

탐구 키워드

  • 다형성
  • 추상 메서드/클래스
  • 인터페이스

공통 주제

  • TestCode

질문은 Comment를 통해서

  1. 강의에서는 Method에 final 붙이면 이른 바인딩이 가능하다라고만 하고, 넘어갔는데 실제로 어떻게 되는지 궁금하네요 :)

-> 직접 오버라이딩을 하지 않는 경우에만 final을 붙일 수 있는 지

Test code에 궁금한게 있는데 Unit Test랑 다른건가요? 아니면 테스트 코드중 일부인건가요?

강의보다가 갑자기 궁금한건 인터페이스 메소드는 무조건 Public? 이게 그렇게 써야한다고 말하는건지 Syntax인건지 모르겠네요.
Protected도 되지 않나요..?
물론 검색해보면 바로 나오지만 일단 질문 적어둡니당

강의 다음 부분에 나오네요 ㅎㅎ

강의에서 높은 결합도를 가지는 것 -> 쉽게 B 코드 변경 시 A 코드 변경이라고 설명했는데, 그 예외도 있는 것 같아서, A와 B가 높은 결합도를 가진다 의 조금 더 정확한 정의 or 의미가 궁금합니다.

예외) 섹션 13. 188 강에서 Robot SimpleHead에 높은 결합도를 가진다라고 했는데, 사실 SimpleHead 내부 코드를 변경하더라도 Robot은 변경할 필요가 없습니다. 즉, 위의 경우에 포함되지 않지만, 높은 결합도를 가지는 예제입니다.

퀴즈 37이 이해가 안되네요..

함수 매개변수의 자료형으로 interface를 사용하면 그 함수 내에서 호출하는 매개변수의 메서드를 좀 더 명확하게 특정할 수 있다.

위 문장이 맞다고 하는데, 참조형을 interface로 정하는 것 자체가 파라미터를 추상화시켜서 참조하는 변수의 메서드 호출이 실제로 어떤 구체 클래스의 메서드인지 특정할 수 없게 하지 않나요..?

@wansoo05

Test : 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차

Unit Test : 모든 함수와 메서드(=의존 없는 기능)에 대한 테스트 케이스(Test case)를 작성하는 절차

정도로 봅니다.

https://jamie95.tistory.com/entry/JUnit?category=873781