다형성
JAVA Basic) 인터페이스 - 연습 문제
목차 Q1 클래스가 인터페이스를 구현하기 위해 사용하는 예약어는 [ ]이다. Q2 클래스가 인터페이스를 구현할 때 인터페이스에 선언한 메서드를 모두 구현하지 않으면 그 클래스는 [ ]가 된다. Q3 인터페이스에 선언한 변수는 컴파일할 때 [ ]로 변환된다. Q4 한 인터페이스를 여러 클래스가 다양한 방식으로 구현한 경우에 프로그램에서 인터페이스에 선언된 메서드를 사용할 때 각 클래스의 구현 내용과 상관없이 도잉ㄹ한 방식으로 사용할 수 있다. 이렇게 같은 코드가 여러 구현 내용으로 실행되는 객체 지향 특성을 [ ]이라고 한다. Q5 인터페이스에서 구현한 코드를 제공하는 메서드는 [ ] 와 [ ]이다. Q6 한 클래스에서 여러 인터페이스를 구현할 수 있다. [ 예 / 아니오 ] Q7 숫자 정렬 알고리즘에는 ..
JAVA Basic) 템플릿 메서드(template method)
목차 '템플릿(template)'이란 용어는 틀, 견본을 뜻하는 용어다. 즉 틀이 있는 메서드라는 의미. 싱글톤 패턴과 같은 일종의 디자인 패턴. 템플릿 메서드는 추상 클래스를 사용하여 구현할 수 있다. package template; public abstract class Car { public abstract void drive(); public abstract void stop(); public void startCar() { System.out.println("시동을 켭니다."); } public void turnOff() { System.out.println("시동을 끕니다."); } final public void run() { startCar(); drive(); stop(); turnOff..
JAVA Basic) 다형성 활용하기
목차 상속과 다형성을 활용하면 프로그램을 유지보수하는 데 굉장히 편리하다. 여기에 배열까지 함께 사용하게 되면, 여러 하위 클래스 자료형을 상위 클래스 자료형으로 한꺼번에 관리할 수도 있게 된다. 새로운 요구 사항이 발생했다..! [예제 시나리오] 고객이 늘어 VIP등급 보다 물건을 많이 구매하진 않지만, 그래도 혜택을 주는 등급(GOLD)을 추가하고 싶습니다. -제품을 살 때는 항상 10% 할인. -보너스 포인트 2% 적립 -담당 전문 상담원 X 새로운 고객 등급이 생겼다. 이 등급의 고객은 VIP고객과 보너스 포인트 적립률이 다르고, 담당 상담원이 없다. 이 내용을 기반으로 Customer클래스를 상속받아 'GoldCustomer클래스'를 만들어보자. 고객 관리 시스템은 다음과 같은 계층구조로 확장될..
JAVA Basic) 다형성
목차 묵시적 클래스 형 변환과, 가상메서드를 바탕으로 객체 지향의 중요한 특성인 '다형성(polymophism)'을 알아보자. '다형성'이란, 하나의 코드가 여러 자료형으로 구현되어 실행되는 것이다. 쉽게 말하면, 같은 코드에서 여러가지 실행 결과가 나오는 것이다. 3개의 클래스가 Animal클래스를 상속받은 상황이다. Animal클래스에서 메서드를 하나 정의하고 상속받은 클래스에서 재정의하는 코드를 구현해보자. package polymorphism; class Animal{ public void move() { System.out.println("동물이 움직입니다."); } } class Human extends Animal { public void move(){ System.out.println("사..