어노테이션은 다른 프로그램에게 유용한 정보를 제공하기 위해 사용되는 것으로 주석과 같은 의미를 가진다.
@Override
컴파일러에게 메서드를 오버라이딩하는 것이라고 알린다.
오버라이딩한 메소드는 클래스 타입 변활을 하더라도 자식 메소드를 호출
클래스 타입 변환을 한 클래스는, 더 이상 자식 클래스만의 멤버들을 호출 할 수 없다.
upcasting은 서브타입의 인스턴스를 수퍼타입의 변수로 접근하는 것을 말합니다.
즉, 자식 클래스가 부모 클래스 타입으로 캐스팅 되는것을 뜻합니다.
이때 서브 타입에서는 수퍼타입에 선언된 필드 혹은 메서드만 접근 가능합니다.
downcasting은 서브타입 인스턴스를 참조하는 수퍼타입 변수를 재참조하는 것을 말합니다.
즉, 부모 클래스가 자식클래스 타입으로 캐스팅되는 것을 뜻합니다.
이때 강제형변환이 일어나며, 다운캐스팅한 타입에서 선언된 모든 필드와 메서드에 접근이 가능합니다.
추상 메서드를 사용할라면 추상클래스 내에서 사용해야함. but 추상 클래스에는 추상 메서드가 꼭 있어야하는 건 아님.
인터페이스에서는 필드 대신 상수를 선언할 수 있다.
5분씩 번갈아 2명이서 한명은 훈수, 한명은 코딩 하는 페어프로그래밍을 진행했다. 이전에 해본적이 없었던 경험이라 새로웠다 특히, 서로 코드리뷰를 하면서 서로 잘모르는 부분은 페어의 설명을 듣고 이해할 수 있었던 부분이 좋았다. 항상 뭔가 알고리즘 문제를 기계적으로 풀었던 탓에 기존의 알고리즘을 구현하려니 약간 어렵게 느껴졌던 것 같다. 앞으로 코딩테스트 대비용으로 문제를 푼다기 보다 학습을 위한 공부를 해야겠다는 생각이 드는..