본문 바로가기

개발/Java53

[3주차 Java 중급] - 메서드 재정의 하기(overriding) 하위 클래스에서 메서드 재정의 하기 오버라이딩(overriding) : 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음 (상위 클래스의 정의 구현 부분이 동일해야함. 예를 들면, 함수 이름, 파라미터, 리턴값 같은 것들...) VIPCustomer 클래스의 calcPrice()는 할인율이 적용되지 않음 재정의 하여 구현해야 함 VIPCustomer.java @Override public int calcPrice(int price) { bonusPoint += price*bonusRatio; return price - (int)(price * salesRatio); } @Overriding 애노테이션(ann.. 2023. 6. 25.
[3주차] Java 중급 - 상속에서 클래스 생성 과정과 형 변환 하위 클래스가 생성되는 과정 하위 클래스를 생성하면 상위 클래스가 먼저 생성됨 new VIPCustomer()를 호출하면 Customer() 가 먼저 호출됨 (상위 클래스가 먼저 호출됨) 클래스가 상속 받은 경우 하위 클래스의 생성자에서는 반드시 상위 클래스의 생성자를 호출함 Customer.java public Customer() { // 생성자 (일반 고객) customerGrade = "SILVER"; bonusRatio = 0.01; System.out.println("Customer() 생성자 호출"); // 생성자 안에 작성 } VIPCustomer.java public VIPCustomer() { customerGrade = "VIP"; // 오류 발생 상속받은 Customer에서 custo.. 2023. 6. 24.
[3주차] Java 중급 - 상속을 활용한 멤버십 클래스 구현하기 멤버십 시나리오 회사에서 고객 정보를 활용한 맞춤 서비스를 하기 위해 일반 고객(Customer)과 이보다 충성도가 높은 우수 고객(VIPCustomer)에 따른 서비스를 제공하고자 함 물품을 구매할 때 적용되는 할인율과 적립되는 보너스 포인트의 비율이 다름 여러 멤버십에 대한 각각 다양한 서비스를 제공할 수 있음 멤버십에 대한 구현을 클래스 상속을 활용하여 구현해보기 일반 고객(Customer) 클래스 구현 고객의 속성 : 고객 아이디, 고객 이름, 고객 등급, 보너스 포인트, 보너스 포인트 적립비율 일반 고객의 경우 물품 구매 시 1%의 보너스 포인트 적립 package ch03; public class Customer { private int customerID; //고객의 아이디는 중요 정보이기 .. 2023. 6. 24.
[3주차] Java 중급 - 객체 간의 상속은 어떤 의미일까 클래스 상속 새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현함 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함 상속하는 클래스 : 상위 클래스, parent class, base class, super class 상속받는 클래스 : 하위 클래스, child class, derived class, subclass // 상속의 문법 -> 자바는 단일 상속 (single inheritance) 만을 지원함 class B extends A { // extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음 } 상속을 구현하는 경우 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 .. 2023. 6. 24.