오버라이딩이란 ? 오버라이딩(overriding)은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 말합니다. 오버라이딩은 다음 조건을 만족해야 합니다. 메서드 이름이 동일해야 합니다. 메서드 시그니처(이름과 매개변수의 타입, 개수, 순서)가 동일해야 합니다. 접근 제어자는 부모 클래스의 메서드보다 같거나 더 넓은 범위로 변경할 수 있습니다. 예외 타입은 부모 클래스의 메서드와 일치하거나, 부모 클래스의 메서드가 던지는 예외의 하위 타입을 선언할 수 있습니다. 반환 타입은 일치해야 합니다. (자바 5부터는 반환 타입의 공변성을 허용합니다.) 따라서 오버라이딩은 부모 클래스의 메서드와 동일한 시그니처를 가져야 하며, 메서드 내부에서 추가적인 인스턴스 변수를 사용하거나 다른 동작을 정의할 수 있습니다..
* 18. 인스턴스 목록을 다루는 코드를 별도의 클래스로 분리 * GRASP 패턴 응집력을 높인다. 서로 관련된 기능을 묶어서 클래스 별로 더 전문적인 역할을 수행한다. UI MemberHanlder 기능 Memberlist (인스턴스 보관) 때문에 Cmd (Command Line Interface) 환경을 웹(Web) 환경으로 바꾸더라도 UI 기능의 Handler만 코드를 수정해주면 되기 때문에 재사용과 유지보수에 용이하다. * 19. 범용 리스트 만들기 각각의 Member, Baord Handler 를 통해 각각의 List를 만들었다. 하지만 List의 구조가 비슷하기 때문에 범용 리스트를 만들어주는 것이 좋다. * 다형적 변수 부모 클래스와 자식 클래스의 인스턴스와 객체 생성 A obj; obj =..
질문했던 내용 * 다형적 변수 A obj; obj = new A(); True A에는 A기능이 있다. A obj; obj = new B(); True A에는 B기능이 있다. A obj; obj = new C(); True A에는 C기능이 있다. A obj; obj = new D(); True A에는 D기능이 있다. D obj2; obj = new A(); False D에는 A기능이 없다. D obj2; obj = new B(); False D에는 B기능이 없다. D obj2; obj = new C(); False D에는 C기능이 없다. D obj2; obj = new D(); True D에는 D기능이 있다. 부모는 자식의 클래스를 직접 사용할 수는 없다. 반면 자식은 부모의 클래스를 사용할 수 있다. 예..
array가 주어질 때. array의 배열을 i에 하나씩 넣으면서 i가 현재까지의 max보다 크다면 max 값을 변경해준다. 이렇게 해서 배열의 최댓값 max 를 찾아줄 수 있다. int max = 0; for (int i : array) { if (i > max) { max = i; } }