Power Java 제11장 상속.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

SCJP. Garbage Collection  Garbage Collector( 이하 GC) 가 Heap 영역 에 할당된, 더 이상 사용되지 않는 메모리인 Garbage 를 다른 객체가 사용할 수 있도록 정리하는 것.  C++ 에서의 메모리 해제 int* v=new.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
Power Java 제3장 이클립스 사용하기.
3부 객체지향 3부에서는 자바 언어의 핵심인 객체지향의 개념과 클래스, 객체, 상속, 다형성 등의 개념에 관해 설명합니다.
최윤정 Java 프로그래밍 클래스 상속 최윤정
5장. 객체지향과 클래스.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
3. 자바에서 지원하는 패키지 자바에서 기본적으로 제공하는 패키지.
10장 객체-지향 프로그래밍 II.
어서와 Java는 처음이지! 제7장 상속.
제 5 장 상속과 다형성.
명품 JAVA Essential.
[INA470] Java Programming Youn-Hee Han
제 8 장 상속.
Chapter 4. 클래스와 객체 PS Lab. 이지연.
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 6. 형변환.
5장. 참조 타입.
스레드란? 멀티 태스킹(muli-tasking)는 여러 개의 애플리케이션을 동시에 실행하여서 컴퓨터 시스템의 성능을 높이기 위한 기법 그림23-1. 병철 처리의 예.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
어서와 Java는 처음이지! 제7장 상속.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
제4장 클래스와 객체 객체 지향 기법을 이해한다. 클래스를 작성할 수 있다. 클래스에서 객체를 생성할 수 있다.
제7장 클래스와 객체.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
Power Java 제14장 배치 관리자.
Java 6장. 클래스 : 속성 public class SumTest {
Lesson 7. 클래스와 메소드 - 1.
자바 5.0 프로그래밍.
Choi, Namseok Java 기초 (객체와 클래스) Choi, Namseok
7장 인터페이스와 추상 클래스.
Method & library.
Chapter 11 객체지향 프로그래밍의 기초 01 클래스 02 생성자 03 인스턴스 변수와 클래스 변수 예제 모음 요약
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Effective Java [Issue 1 and 2]
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
자바 5.0 프로그래밍.
자바 가상 머신 프로그래밍 Chap 10. 자바 컴파일링의 안쪽 ② Pslab 오민경.
JA A V W. 06.
10장 상속 Section 1 상속의 개요 Section 2 상속과 한정자 Section 3 상속과 생성자
CHAP 21. 전화, SMS, 주소록.
12. 상속 : 고급.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Lecture 04 객체지향 페러다임 Kwang-Man Ko
서브클래스 조 병 규 한 국 교 통 대 학 교 SQ Lab..
발표자 : 이지연 Programming Systems Lab.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
.Net FrameWork for Web2.0 한석수
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
Power Java 제14장 배치 관리자.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 07. 상속의 이해.
자바 객체 지향 프로그래밍 Ps lab 김윤경.
Power Java 제23장 스레드.
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
7 생성자 함수.
6 객체.
Presentation transcript:

Power Java 제11장 상속

상속을 코드를 재사용하기 위한 중요한 기법입니다. 이번 장에서 학습할 내용 상속을 코드를 재사용하기 위한 중요한 기법입니다. 상속이란? 상속의 사용 메소드 재정의 접근 지정자 상속과 생성자 Object 클래스 종단 클래스

상속의 개념 상속의 개념은 현실 세계에도 존재한다. 그림11-1. 상속의 개념

상속의 장점 상속의 장점 상속을 통하여 기존 클래스의 필드와 메소드를 재사용 기존 클래스의 일부 변경도 가능 상속을 이용하게 되면 복잡한 GUI 프로그램을 순식간에 작성 상속은 이미 작성된 검증된 소프트웨어를 재사용 신뢰성 있는 소프트웨어를 손쉽게 개발, 유지 보수 코드의 중복을 줄일 수 있다.

상속

상속

상속 사용

상속 사용 그림11-2. Car와 SportsCar

상속 사용

상속의 계층 구조 그림11-3. 상속 계층 구조도

상속의 계층 구조 그림11-4. 클래스들의 크기

상속은 중복을 줄인다. 그림11-5. 각 클래스에 코드가 중복된다. 그림11-6. 중복되는 코드는 수퍼 클래스에 모은다.

상속은 is-a관계 자동차는 탈것이다. (Car is a Vehicle). 사자, 개, 고양이는 동물이다. 도서관은 책을 가지고 있다(Library has a book). 거실은 소파를 가지고 있다.

중간점검

접근 지정자 그림11-7. 상속에서 접근 지정자

예제

예제

예제

메소드 재정의 메소드 재정의(method overriding): 서브 클래스가 필요에 따라 상속된 메소드를 다시 정의하는 것

메소드 재정의의 예 멍멍!

실행결과 멍멍!

@Override

중복 정의와 재정의의 차이 그림11-8. 메소드 재정의와 메소드 중복 정의

super

실행결과

상속과 생성자 서브 클래스의 객체가 생성될 때, 서브 클래스의 생성자만 호출될까? 아니면 수퍼 클래스의 생성자도 호출되는가?

명시적인 호출 super를 이용하여서 명시적으로 수퍼 클래스의 생성자 호출

묵시적인 호출 Shape 생성자 Rectangle 생성자

묵시적인 호출 Shape 생성자 Rectangle 생성자

실행결과 Shape 생성자 Rectangle 생성자

Object 클래스 Object 클래스는 java.lang 패키지에 들어 있으며 자바 클래스 계층 구조에서 맨 위에 위치하는 클래스 그림11-9.Object 클래스는 상속 계층 구조의 맨 위에 있다(출처: java.sun.com)

Object의 메소드 protected Object clone() 객체 자신의 복사본을 생성하여 반환한다. public boolean equals(Object obj) obj가 이 객체와 같은지를 나타낸다. protected void finalize() 가비지 콜렉터에 의하여 호출된다. public final Class getClass() 객체를 생성한 클래스 정보를 반환한다. public int hashCode() 객체에 대한 해쉬 코드를 반환한다. public String toString() 객체의 문자열 표현을 반환한다.

getClass() obj is of type Car

equals() 메소드 동일한 종류의 자동차입니다.

실행결과 동일한 종류의 자동차입니다.

finalize()메소드 Object 클래스는 finalize()라는 콜백(callback) 메소드를 정의한다. 이것은 객체가 소멸되기 직전에 호출된다. Object 클래스의 finalize()에서는 아무 것도 하지 않지만 서브 클래스에서 재정의하여서 자원을 반납하는 등의 정리 과정을 실행할 수 있다 동일한 종류의 자동차입니다.

toString() 메소드 Object 클래스의 toString() 메소드는 객체의 문자열 표현을 반환

종단 클래스와 종단 메소드 키워드 final을 붙이면 상속이나 재정의할 수 없다.