최윤정 cris.lecture@gmail.com Java 프로그래밍 클래스 상속 최윤정 cris.lecture@gmail.com
지난 시간 review 및 feedback 지난 시간 어려웠거나 이해가 힘든 부분 질문 사탕줄께요
이번 장에서 학습할 내용 상속이란? 상속의 사용 메소드 재정의 접근 지정자 상속과 생성자 Object 클래스 종단 클래스
상속이란? 상속의 개념은 현실 세계에도 존재한다.
상속의 장점 상속의 장점 상속을 통하여 기존 클래스의 필드와 메소드를 재사용 기존 클래스의 일부 변경도 가능 상속을 이용하게 되면 복잡한 GUI 프로그램을 순식간에 작성 상속은 이미 작성된 검증된 소프트웨어를 재사용 신뢰성 있는 소프트웨어를 손쉽게 개발, 유지 보수 코드의 중복을 줄일 수 있다.
class SportsCar extends Car 상속 class Car { int speed; } class SportsCar extends Car int turbo; 상속한다는 의미
수퍼 클래스는 서브 클래스를 포함
상속의 예
상속의 계층 구조
상속은 중복을 줄인다. 상속
중간 점검 문제 1. 사자, 호랑이, 개, 고양이, 여우, 악어, 도마뱀들을 상속 계층 구조를 이용하여 표현하여 보자.
상속의 구체적인 예
상속의 예
상속의 사용 서브 클래스는 수퍼 클래스의 필드와 메소드를 마치 자기 것처럼 사용할 수 있다.
메소드 재정의 메소드 재정의(method overriding): 서브 클래스가 필요에 따라 상속된 메소드를 다시 정의하는 것
메소드 재정의의 예 Animal
메소드를 재정의하려면 메소드의 이름, 반환형, 매개 변수의 개수와 데이터 타입이 일치하여야 한다. 오버라이드가 아님 public class Animal { public void makeSound() { } }; 오버라이드가 아님 public class Dog extends Animal { public int makeSound() { } };
중복 정의와 재정의
super 키워드 수퍼클래스 객체를 가리킨다.
접근 지정자
접근 지정자의 예 Manager Employee
접근 지정자의 예 Manager Employee
상속과 생성자
묵시적인 호출
Object 클래스
Object의 메소드
equals() 메소드 Object의 equals()를 재정의
equals() 메소드 재정의된 equals() 호출
toString() Object 클래스의 toString() 메소드는 객체의 문자열 표현을 반환 public class Car { private String model; public Car(String model) { this.model = model; } public String toString() { return “모델: “ + model; Object의 tostring()를 재정의
종단 클래스 와 종단 메소드 키워드 final을 붙이면 상속이나 재정의할 수 없다. 재정의할 수 없도록 한다.