일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 인터페이스
- 보조 스트림
- throws
- 문자 단위 스트림
- FileInputStream
- 개발자
- 코린이
- 새벽공부
- 상속
- 초보개발자
- 예외 처리
- 백엔드
- 인스턴스
- Java
- 자바
- MPA
- 다형성
- try-catch
- 코딩
- exception
- ArrayList
- node.js
- 파이팅
- 변수
- 바이트 단위 스트림
- 배열
- 졸리다
- SSR
- 메서드
- 자료형
- Today
- Total
목록상속 (4)
SHUSTORY

추상 클래스 추상 클래스를 영어로 표현하면 abstract class이고, 추상 클래스가 아닌 클래스는 concrete class라고 한다. 추상 클래스는 항상 구현 코드가 없는 추상 메서드를 포함한다. { }로 감싸진 함수의 구현부, 즉 함수 몸체가 없는 함수를 추상 메서드라고 한다. 추상 메서드는 abstract 예약어를 사용하며, { } 대신 ; 를 사용한다. 참고로 { } 를 사용하면 그것만으로도 메서드를 구현한 셈으로, 다음과 같은 메서드는 추상 메서드가 아니다. 자바에서 추상 메서드는 abstract 예약어를 사용하여 선언만 하는 메서드이다. 우리가 프로그램을 구현하고자 코딩을 하는 과정에서 로직을 만들고 기능을 구현할 때, 가장 중요한 것은 어떻게 구현할지를 결정하는 개발 설계 과정이다. 예..

다형성을 활용하면 프로그램을 유지보수하는 데 매우 편리하다. 이 때 배열을 함께 사용하면 여러 하위 클래스 자료형을 상위 클래스 자료형으로 한꺼번에 관리할 수 있다. 일반 고객과 VIP 고객의 중간 등급 만들기 [ GOLD 고객 ] 제품을 살 때는 항상 10% 할인해 준다. 보너스 포인트를 2% 적립해 준다. 담당 전문 상담원은 없다. 위 등급의 고객을 Customer 클래스를 상속받아 GoldCustomer 클래스를 만들어 구현해보자. Customer 클래스를 상속받았기 때문에 지불 가격과 보너스 포인트를 계산하는 calcPrice( ) 메서드만 재정의하여 새로운 기능을 쉽게 추가하여 구현할 수 있다. 배열로 고객 5명 구현하기 VIP고객 1명, GOLD고객 2명, SILVER고객 2명을 객체 배열 A..

다형성 다형성이란 하나의 코드가 여러 자료형으로 구현되어 실현되는 것을 의미한다. 쉽게 말해 같은 코드에서 여러 실행 결과가 나오는 것이다. Animal 클래스를 상속받는 Human 클래스 / Tiger 클래스 / Eagle 클래스가 있고, Animal 클래스의 메서드를 하나 정의하고 상속받은 클래스에서 재정의해보자. AnimalTest 클래스를 통해 어떤 인스턴스가 매개변수로 넘어와도 모두 Animal 형으로 변환하도록 한다. 예를 들어 매개변수가 전달되는 부분에 Human 인스턴스가 전달되었다면 다음 코드와 같이 형 변환된다. 가상 메서드의 원리에 따라 animal.move( ) 메서드가 호출하는 메서드는 Animal의 move가 아닌 매개변수로 넘어온 실제 인스턴스의 메서드이다. animal.mov..

클래스의 상속 B 클래스가 A 클래스를 상속받으면 B 클래스는 A 클래스의 멤버 변수와 메서드를 사용할 수 있다. 객체 지향 프로그램은 유지보수 및 프로그램 수정과 내용 추가가 유연한데, 이 기반이 되는 기술이 '상속'이다. B 클래스가 A 클래스에게 상속받을 때, 화살표로 표시할 때는 B→A로 표현한다. ( * 화살표 방향 주의 ) 여기서 A 클래스를 부모 클래스, 상위 클래스라고 부르며 B 클래스를 자식 클래스, 하위 클래스라고 부른다. 위 상속 문법은 B 클래스가 A클래스를 상속받는 코드이다. 상속 관계에서 상위 클래스가 하위 클래스보다 일반적인 개념이고, 하위 클래스가 구체적인 클래스가 된다. 상속을 사용하여 고객 관리 프로그램 구현하기 회사에서 고객 정보에 맞춤 서비스를 제공하기 위한 고객 관리..