SlideShare a Scribd company logo
JAVA Class 상속
작성자 : 홍효상
이메일 : hyomee@naver.com
소스 : https://github.com/hyomee/JAVA_EDU
프로그램은 사람이 이해하는 코드를 작성.
느려도 꾸준하면 경기에서 이긴다.
Content
소스 : https://github.com/hyomee/JAVABASIC
8. Class 상속
1. 개념
2. Class 상속 ( Extends )
3. Abstract Class 상속 ( Extends )
4. Interface Class 상속 ( Implements )
1. 개념
8. Class 상속
• 부모클래스를성질을자식클래스가포함시키는문법요소
• 객체(사물)의공통적인성질(특성)을모아서 클래스를만들고독립적인성질을 각각클래스로만들면이때공통적인성질을부모클래스라하고개별클래스를자식클래스라한다.
“ 객체 지향 프로그램에서 가장 기본적인 문법 요소 ”
8-1. 개념
클래스 상속
이름
나이
증명서
몸무게
키
먹기
잠자기
등교하기
출근하기
술마신다
공부하기
일하기
사람
이름
나이
학생증
몸무게
키
먹기
잠자기
등교하기
공부하기
학생
이름
나이
사원증
몸무게
키
먹기
잠자기
등교하기
출근하기
술마신다
공부하기
일하기
직장인
이름
나이
몸무게
키
먹기
잠자기
술마신다
일반인
이름
나이
몸무게
키
먹기
잠자기
사람
학생증
등교하기
공부하기
학생
사원증
출근하기
술마신다
공부하기
일하기
직장인
술마신다
일반인
공통 성질(특징)
개별 성질
부모 클래스
자식 클래스
자식 클래스
1. 개념
8. Class 상속
• 중복되는속성(상태)과행동을별도로관리하여중복코드를제거한다..
-이름,나이,몸무게,키,먹기,잠자기
• 학생은사람이다,직장인은사람이다.직장인은성인이다.일반인도성인이다.처럼다양한표현을할수있는것을다양성이라한다.
“ 상속은 코드 중복 제거와 다형성을 위함이다.”
8-1. 개념
다양성
이름
나이
몸무게
키
먹기
잠자기
사람
학생증
등교하기
공부하기
학생
사원증
출근하기
술마신다
일하기
직장인
술마신다
일반인
이름
나이
몸무게
키
먹기
잠자기
사람
고등학생 사원증
출근하기
공부하기
일하기
직장인 일반인
술마신다
성인
술마신다
대학생
학생증
등교하기
공부하기
학생
상세화/구체화
조상 클래스
부모 클래스 부모 클래스
자식 클래스 자식 클래스
학생은 사람이다.
직장인은 사람이다.
일반인은 사람이다.
고등학생은 학생이다.
고등학생은 사람이다.
대학생은 사람이다.
….
사람은 학생이다.
-> 이상한 표현임
=> 상속은 자식에서 부모로 향하는 것이다.
1. 개념
8. Class 상속
• 중복되는속성(상태)과행동을별도로관리하여중복코드를제거한다..
-이름,나이,몸무게,키,먹기,잠자기
• 학생은사람이다,직장인은사람이다.직장인은성인이다.일반인도성인이다.처럼다양한표현을할수있는것을다양성이라한다.
“ 상속은 코드 중복 제거와 다형성을 위함이다.”
8-1.개념
다양성
이름
나이
몸무게
키
먹기
잠자기
사람
고등학생 사원증
출근하기
공부하기
일하기
직장인 일반인
술마신다
성인
술마신다
대학생
학생증
등교하기
공부하기
학생
조상 클래스
부모 클래스 부모 클래스
자식 클래스 자식 클래스
고등학생은 학생이다.
고등학생은 사람이다.
대학생은 사람이다.
….
➢ 다양성표현
사람[ ] = { new 사람(), new 사람() };
학생[ ] = { new 학생(), new 학생(), new 학생() };
사람[ ] = { new 사람(), new 학생(), new 직장인(), new 일반인() };
사람 h01 = new 학생();
사람 h01 = new 직장인();
사람 h01 = new 일반인();
• 배열표현(상속되지않은상태)
-동일자료형만요소로될 수있음
• 배열표현(상속됨)
-부모의성질(특성)을모두받을수있음
-또다른표현
1. Class 상속 ( Extends )
8. Class 상속
8-2. Class 상속 ( Extends )
01. 클래스생성
class 자식클래스 extends 부모클래스 {
….
}
사람
학생 직장인
class 학생 extends 사람 { … }
class 직장인 extends 사람 { …. }
사람
브루스버너박사
헐크
class 브루스버너박사 extends 사람, 헐크 { … }
➢ 다중상속->자바에서는허용하지않음
브루스버너박사가 달린다 -> 누가 달리는 것인가 ?
=> 모호성이 발생함
1. Class 상속 ( Extends )
8. Class 상속
8-2. Class 상속 ( Extends )
02. 클래스생성시메모리구조 ➢ 사용
인스턴스 메서드 영역 Stack 영역 Heap 영역
eat() {}
sleep() {}
goToSchool()
study()
Human
Student
student 100 Human 객체
( Objects )
Student 객체
( Objects )
name age
weight height
eat() sleep())
studentId
goToSchool()
study()
100 번지
1. Class 상속 ( Extends )
8. Class 상속
8-2. Class 상속 ( Extends )
03. 부모객체에생성자는상속대상이아니다.
Invalid method declaration; return type required
-> 부모 객체의 생성자를 재정의 하려고 해서 나는 오류
-> 자식 객체의 메서드로 사용 하여야 함
생성자는 리턴 타입이 없음
리턴 타입이 있는 것은 메서드
04. 다양성
Human
Student Adult
Worker SelfEmployed
CollegeStudent HighSchoolStudent
public class Human { }
public class Adult extends Human { }
public class Worker extends Adult { }
public class SlefEmpolyed extends Adult { }
public class Student extends Human { }
public class CollegeStudent extends Student { }
public class HighSchoolStudent extends Student { }
• 객체를 다양하게 생성 할 수 있다.
-> 중학생, 초등학생 …..
1. Class 상속 ( Extends )
8. Class 상속
8-2. Class 상속 ( Extends )
05. 객체생성시타입
class com.hyomee.extend.Human cannot be cast to class com.hyomee.extend.Student
java.lang.ClassCastException: class com.hyomee.extend.Human cannot be cast to class
com.hyomee.extend.Student
java.lang.ClassCastException: class com.hyomee.extend.Human cannot be cast to class
com.hyomee.extend.Student
Up Casting : Human human = (Human) student : compiler에 의해서 자동으로 추가
-> Human으로 전화 되었기 때문에 student의 성질(특성)은 사라짐
-> Human의 멤버, 메서드 만 사용 가능
Down Casting : 개발자가 직접 해야 함
-> Student 객체를 변환 함
-> Human, Student 의 모든 속성(멤버), 메서드 사용
Student는 Human를 상속 받아서 Human의 모든 성질(특성)을 사용 할 수 있음
-> Human, Student 의 모든 속성(멤버), 메서드 사용
Student를 사용 해서 Human으로 생성됨
-> Student의 속성(멤버), 메서드 사용 불가
-> Human의 멤버, 메서드 만 사용 가능
Human 객체 생성
-> Human의 멤버, 메서드 만 사용 가능
X
X
X
1. Class 상속 ( Extends )
8. Class 상속
8-2. Class 상속 ( Extends )
05. 객체타입확인(instanceof ) 06. Method Overriding
…
사람
…
술마신다
직장인
…
술마신다
자영자
술마신다
성인
…
사람
…
직장인
…..
자영자
술마신다
성인
성인은 술 마신다
직장인은 맥주를 마신다
자영업자는 소주를 마신다
부모의 행위(메서드)를 재
정의해서 자식에서 재정의
하는 것 -> Overriding
Overriding 이전
Overriding 이후
1. Class 상속 ( Extends )
8. Class 상속
8-2. Class 상속 ( Extends )
07. super & this
Overriding 이전
Overriding 이후
➢ 술을마신다를출력하고싶다면
super를 이용해서 부모 호출
• super :부모의멤버,메서드를접근할때사용,private로선언것은접근할수없음
• this :자기자신의멤버,메서드접근
• super() : 자식생성자에서부모의생성자에접근하기위해서사용
1. Class 상속 ( Extends )
8. Class 상속
8-2. Class 상속 ( Extends )
08. super()
• super() : 자식생성자에서부모의생성자에접근하기위해서사용
1
2
3
➢ 주의사항
• 생성자를OverLoading Method를만들때는매개변수없는기본생성자를
작성해야함
• super()를 사용 하여 부모 객체를 접근 하는 경우 super()실행 전에
아무것도실행하면안됨
1. Abatract Class
8. Class 상속
8-3. Abstract Class 상속 ( Extends )
• 추상메서드가1개이상포함하고있는클래스는반드시추상클래스로정의해야한다.
• 추상메서드:메서드의본체가없는미완성메서드로상속받은클래스에서실체화(구현)해야한다.
“ 추상 메서드가 1개 이상 포함 하고 있는 클래스 ”
Abatract Class
…
사람
…
술마신다
직장인
…
술마신다
자영자
술마신다
성인
“성인이 술마신다.”를 추상
하 하고 직장인이 술 마시
다는 구체화 한다.
추상 메서드 있음
추상 클래스 선언
추상 메서드 구현
1. Interface Class
8. Class 상속
8-4. Interface Class 상속
• Interface는입출력에서사용하는용어로서로다른시스템간의연동을의미한다.
• Interface는 시스템 또는 각 객체의 종류에 상관 없이 동일한 필드와 메서드를 제공하여 호환성을 제공 하기 위해서 사용 된다.
• 자바에서Interface는객체관계에서다른객체에게공개할기능만추상화하기위한용도로사용이된다.
• Class대신Interface키워드를사용한다.
“시스템 또는 각 객체의 종류에 상관 없이 동일한 필드와 메서드를 제공”
Interface Class
01. Interface 생성
interface 인터페이스명 {
public static final 자료형 필드명 = 값;
public abstract 리턴타입 메서드명();
default 자료형 메서드(매개변수) { … )
}
interface 인터페이스명 {
자료형 필드명 = 값;
리턴타입 메서드명();
default 자료형 메서드(매개변수) { … )
}
생략
1. Interface Class
8. Class 상속
8-4. Interface Class 상속
02. Interface 상속
• implements를 사용함
• implements는 다중 상속 가능 -> implements인터페이스명,인터페이스명
• extends와 같이사용하는경우extends클래스명implements인터페이스명순서로선언해야함
03. Interface 사용
인터페이스명 참조변수 = new 구현클래스();
class 클래스명 implements 인터페이스명 { .. }
class 클래스명 implements 인터페이스명, 인터페이스명 { .. }
class 클래스명 extends 클래스명 implements 인터페이스명 { .. }
상속 받은 객체에 자동
tatic final 로 자동 추가 됨

More Related Content

PDF
Java extends
PDF
Java inner class
PDF
Java class
PPTX
[자바카페] 자바 객체지향 프로그래밍 (2017)
PDF
Java 변수자료형
PPTX
3-1. css
PDF
Java lambda
PPT
Python class
Java extends
Java inner class
Java class
[자바카페] 자바 객체지향 프로그래밍 (2017)
Java 변수자료형
3-1. css
Java lambda
Python class

What's hot (18)

PDF
Ksug2015 - JPA1, JPA 소개
PDF
Java programming pdf
PPTX
파이썬 객체 클래스 이해하기
PPTX
Java, android 스터티2
PDF
Java 기초
PPTX
객체지향 프로그래밍 기본
PDF
Ksug2015 - JPA2, JPA 기초와매핑
PDF
The c++ programming language 10장 클래스 발표
PDF
SpringDataJPA - 스프링 캠프
PPTX
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance
PPTX
파이썬 Descriptor이해하기 20160403
PDF
DDD 구현기초 (거의 Final 버전)
PDF
Java(1/4)
PPTX
10 data nested_classes
PDF
Java 강의자료 ed11
PDF
객체지향 개념 (쫌 아는체 하기)
PDF
9 object class
PPTX
[새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
Ksug2015 - JPA1, JPA 소개
Java programming pdf
파이썬 객체 클래스 이해하기
Java, android 스터티2
Java 기초
객체지향 프로그래밍 기본
Ksug2015 - JPA2, JPA 기초와매핑
The c++ programming language 10장 클래스 발표
SpringDataJPA - 스프링 캠프
[새차원, 코틀린(Kotlin) 강좌] 7 classes and_inheritance
파이썬 Descriptor이해하기 20160403
DDD 구현기초 (거의 Final 버전)
Java(1/4)
10 data nested_classes
Java 강의자료 ed11
객체지향 개념 (쫌 아는체 하기)
9 object class
[새차원, 코틀린(Kotlin) 강좌] 9. Properties and Fields
Ad

Similar to Java_06 상속 (20)

PPTX
Java, android 스터티3
PPT
자바스터디(6기) 3
PPTX
[HaU] 신입 기술 면접 준비 java
PDF
Java(2/4)
PPTX
HolubOnPatterns/chapter2_1
PPTX
Holub on-patterns-2-1
PPTX
Java, android 스터티4
PPTX
Java, android 스터티4
PDF
5 6 1
PDF
스칼라 클래스 이해하기 _Scala class understanding
PDF
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)
PPT
Refactoring - Chapter 8.2
PPT
자바스터디(6기) 4
PDF
상속과 구현
PDF
Tcpl 12장 파생클래스
PPTX
객체지향프로그래밍 특강
PDF
Hello, C# : OOP
PPTX
OOP - Object Oriendted Programing
PDF
Android lecture1 java
PDF
[NHN NEXT] Java 강의 - Week4
Java, android 스터티3
자바스터디(6기) 3
[HaU] 신입 기술 면접 준비 java
Java(2/4)
HolubOnPatterns/chapter2_1
Holub on-patterns-2-1
Java, android 스터티4
Java, android 스터티4
5 6 1
스칼라 클래스 이해하기 _Scala class understanding
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)
Refactoring - Chapter 8.2
자바스터디(6기) 4
상속과 구현
Tcpl 12장 파생클래스
객체지향프로그래밍 특강
Hello, C# : OOP
OOP - Object Oriendted Programing
Android lecture1 java
[NHN NEXT] Java 강의 - Week4
Ad

More from Hong Hyo Sang (12)

PDF
Javascript
PDF
Java_10 람다
PDF
Java_09 이너클래스
PDF
Java_08 collection
PDF
Java_07 제너릭 메서드
PDF
Java_03 연산자
PDF
Java_05 class
PDF
Java_04 제어
PDF
Java_02 변수자료형
PDF
Java_01 기초
PDF
Java 이해하기 쉬운 코드
PDF
소프트웨어 개선 그룹(Sig) 개발 원칙
Javascript
Java_10 람다
Java_09 이너클래스
Java_08 collection
Java_07 제너릭 메서드
Java_03 연산자
Java_05 class
Java_04 제어
Java_02 변수자료형
Java_01 기초
Java 이해하기 쉬운 코드
소프트웨어 개선 그룹(Sig) 개발 원칙

Java_06 상속

  • 1. JAVA Class 상속 작성자 : 홍효상 이메일 : hyomee@naver.com 소스 : https://github.com/hyomee/JAVA_EDU 프로그램은 사람이 이해하는 코드를 작성. 느려도 꾸준하면 경기에서 이긴다.
  • 2. Content 소스 : https://github.com/hyomee/JAVABASIC 8. Class 상속 1. 개념 2. Class 상속 ( Extends ) 3. Abstract Class 상속 ( Extends ) 4. Interface Class 상속 ( Implements )
  • 3. 1. 개념 8. Class 상속 • 부모클래스를성질을자식클래스가포함시키는문법요소 • 객체(사물)의공통적인성질(특성)을모아서 클래스를만들고독립적인성질을 각각클래스로만들면이때공통적인성질을부모클래스라하고개별클래스를자식클래스라한다. “ 객체 지향 프로그램에서 가장 기본적인 문법 요소 ” 8-1. 개념 클래스 상속 이름 나이 증명서 몸무게 키 먹기 잠자기 등교하기 출근하기 술마신다 공부하기 일하기 사람 이름 나이 학생증 몸무게 키 먹기 잠자기 등교하기 공부하기 학생 이름 나이 사원증 몸무게 키 먹기 잠자기 등교하기 출근하기 술마신다 공부하기 일하기 직장인 이름 나이 몸무게 키 먹기 잠자기 술마신다 일반인 이름 나이 몸무게 키 먹기 잠자기 사람 학생증 등교하기 공부하기 학생 사원증 출근하기 술마신다 공부하기 일하기 직장인 술마신다 일반인 공통 성질(특징) 개별 성질 부모 클래스 자식 클래스 자식 클래스
  • 4. 1. 개념 8. Class 상속 • 중복되는속성(상태)과행동을별도로관리하여중복코드를제거한다.. -이름,나이,몸무게,키,먹기,잠자기 • 학생은사람이다,직장인은사람이다.직장인은성인이다.일반인도성인이다.처럼다양한표현을할수있는것을다양성이라한다. “ 상속은 코드 중복 제거와 다형성을 위함이다.” 8-1. 개념 다양성 이름 나이 몸무게 키 먹기 잠자기 사람 학생증 등교하기 공부하기 학생 사원증 출근하기 술마신다 일하기 직장인 술마신다 일반인 이름 나이 몸무게 키 먹기 잠자기 사람 고등학생 사원증 출근하기 공부하기 일하기 직장인 일반인 술마신다 성인 술마신다 대학생 학생증 등교하기 공부하기 학생 상세화/구체화 조상 클래스 부모 클래스 부모 클래스 자식 클래스 자식 클래스 학생은 사람이다. 직장인은 사람이다. 일반인은 사람이다. 고등학생은 학생이다. 고등학생은 사람이다. 대학생은 사람이다. …. 사람은 학생이다. -> 이상한 표현임 => 상속은 자식에서 부모로 향하는 것이다.
  • 5. 1. 개념 8. Class 상속 • 중복되는속성(상태)과행동을별도로관리하여중복코드를제거한다.. -이름,나이,몸무게,키,먹기,잠자기 • 학생은사람이다,직장인은사람이다.직장인은성인이다.일반인도성인이다.처럼다양한표현을할수있는것을다양성이라한다. “ 상속은 코드 중복 제거와 다형성을 위함이다.” 8-1.개념 다양성 이름 나이 몸무게 키 먹기 잠자기 사람 고등학생 사원증 출근하기 공부하기 일하기 직장인 일반인 술마신다 성인 술마신다 대학생 학생증 등교하기 공부하기 학생 조상 클래스 부모 클래스 부모 클래스 자식 클래스 자식 클래스 고등학생은 학생이다. 고등학생은 사람이다. 대학생은 사람이다. …. ➢ 다양성표현 사람[ ] = { new 사람(), new 사람() }; 학생[ ] = { new 학생(), new 학생(), new 학생() }; 사람[ ] = { new 사람(), new 학생(), new 직장인(), new 일반인() }; 사람 h01 = new 학생(); 사람 h01 = new 직장인(); 사람 h01 = new 일반인(); • 배열표현(상속되지않은상태) -동일자료형만요소로될 수있음 • 배열표현(상속됨) -부모의성질(특성)을모두받을수있음 -또다른표현
  • 6. 1. Class 상속 ( Extends ) 8. Class 상속 8-2. Class 상속 ( Extends ) 01. 클래스생성 class 자식클래스 extends 부모클래스 { …. } 사람 학생 직장인 class 학생 extends 사람 { … } class 직장인 extends 사람 { …. } 사람 브루스버너박사 헐크 class 브루스버너박사 extends 사람, 헐크 { … } ➢ 다중상속->자바에서는허용하지않음 브루스버너박사가 달린다 -> 누가 달리는 것인가 ? => 모호성이 발생함
  • 7. 1. Class 상속 ( Extends ) 8. Class 상속 8-2. Class 상속 ( Extends ) 02. 클래스생성시메모리구조 ➢ 사용 인스턴스 메서드 영역 Stack 영역 Heap 영역 eat() {} sleep() {} goToSchool() study() Human Student student 100 Human 객체 ( Objects ) Student 객체 ( Objects ) name age weight height eat() sleep()) studentId goToSchool() study() 100 번지
  • 8. 1. Class 상속 ( Extends ) 8. Class 상속 8-2. Class 상속 ( Extends ) 03. 부모객체에생성자는상속대상이아니다. Invalid method declaration; return type required -> 부모 객체의 생성자를 재정의 하려고 해서 나는 오류 -> 자식 객체의 메서드로 사용 하여야 함 생성자는 리턴 타입이 없음 리턴 타입이 있는 것은 메서드 04. 다양성 Human Student Adult Worker SelfEmployed CollegeStudent HighSchoolStudent public class Human { } public class Adult extends Human { } public class Worker extends Adult { } public class SlefEmpolyed extends Adult { } public class Student extends Human { } public class CollegeStudent extends Student { } public class HighSchoolStudent extends Student { } • 객체를 다양하게 생성 할 수 있다. -> 중학생, 초등학생 …..
  • 9. 1. Class 상속 ( Extends ) 8. Class 상속 8-2. Class 상속 ( Extends ) 05. 객체생성시타입 class com.hyomee.extend.Human cannot be cast to class com.hyomee.extend.Student java.lang.ClassCastException: class com.hyomee.extend.Human cannot be cast to class com.hyomee.extend.Student java.lang.ClassCastException: class com.hyomee.extend.Human cannot be cast to class com.hyomee.extend.Student Up Casting : Human human = (Human) student : compiler에 의해서 자동으로 추가 -> Human으로 전화 되었기 때문에 student의 성질(특성)은 사라짐 -> Human의 멤버, 메서드 만 사용 가능 Down Casting : 개발자가 직접 해야 함 -> Student 객체를 변환 함 -> Human, Student 의 모든 속성(멤버), 메서드 사용 Student는 Human를 상속 받아서 Human의 모든 성질(특성)을 사용 할 수 있음 -> Human, Student 의 모든 속성(멤버), 메서드 사용 Student를 사용 해서 Human으로 생성됨 -> Student의 속성(멤버), 메서드 사용 불가 -> Human의 멤버, 메서드 만 사용 가능 Human 객체 생성 -> Human의 멤버, 메서드 만 사용 가능 X X X
  • 10. 1. Class 상속 ( Extends ) 8. Class 상속 8-2. Class 상속 ( Extends ) 05. 객체타입확인(instanceof ) 06. Method Overriding … 사람 … 술마신다 직장인 … 술마신다 자영자 술마신다 성인 … 사람 … 직장인 ….. 자영자 술마신다 성인 성인은 술 마신다 직장인은 맥주를 마신다 자영업자는 소주를 마신다 부모의 행위(메서드)를 재 정의해서 자식에서 재정의 하는 것 -> Overriding Overriding 이전 Overriding 이후
  • 11. 1. Class 상속 ( Extends ) 8. Class 상속 8-2. Class 상속 ( Extends ) 07. super & this Overriding 이전 Overriding 이후 ➢ 술을마신다를출력하고싶다면 super를 이용해서 부모 호출 • super :부모의멤버,메서드를접근할때사용,private로선언것은접근할수없음 • this :자기자신의멤버,메서드접근 • super() : 자식생성자에서부모의생성자에접근하기위해서사용
  • 12. 1. Class 상속 ( Extends ) 8. Class 상속 8-2. Class 상속 ( Extends ) 08. super() • super() : 자식생성자에서부모의생성자에접근하기위해서사용 1 2 3 ➢ 주의사항 • 생성자를OverLoading Method를만들때는매개변수없는기본생성자를 작성해야함 • super()를 사용 하여 부모 객체를 접근 하는 경우 super()실행 전에 아무것도실행하면안됨
  • 13. 1. Abatract Class 8. Class 상속 8-3. Abstract Class 상속 ( Extends ) • 추상메서드가1개이상포함하고있는클래스는반드시추상클래스로정의해야한다. • 추상메서드:메서드의본체가없는미완성메서드로상속받은클래스에서실체화(구현)해야한다. “ 추상 메서드가 1개 이상 포함 하고 있는 클래스 ” Abatract Class … 사람 … 술마신다 직장인 … 술마신다 자영자 술마신다 성인 “성인이 술마신다.”를 추상 하 하고 직장인이 술 마시 다는 구체화 한다. 추상 메서드 있음 추상 클래스 선언 추상 메서드 구현
  • 14. 1. Interface Class 8. Class 상속 8-4. Interface Class 상속 • Interface는입출력에서사용하는용어로서로다른시스템간의연동을의미한다. • Interface는 시스템 또는 각 객체의 종류에 상관 없이 동일한 필드와 메서드를 제공하여 호환성을 제공 하기 위해서 사용 된다. • 자바에서Interface는객체관계에서다른객체에게공개할기능만추상화하기위한용도로사용이된다. • Class대신Interface키워드를사용한다. “시스템 또는 각 객체의 종류에 상관 없이 동일한 필드와 메서드를 제공” Interface Class 01. Interface 생성 interface 인터페이스명 { public static final 자료형 필드명 = 값; public abstract 리턴타입 메서드명(); default 자료형 메서드(매개변수) { … ) } interface 인터페이스명 { 자료형 필드명 = 값; 리턴타입 메서드명(); default 자료형 메서드(매개변수) { … ) } 생략
  • 15. 1. Interface Class 8. Class 상속 8-4. Interface Class 상속 02. Interface 상속 • implements를 사용함 • implements는 다중 상속 가능 -> implements인터페이스명,인터페이스명 • extends와 같이사용하는경우extends클래스명implements인터페이스명순서로선언해야함 03. Interface 사용 인터페이스명 참조변수 = new 구현클래스(); class 클래스명 implements 인터페이스명 { .. } class 클래스명 implements 인터페이스명, 인터페이스명 { .. } class 클래스명 extends 클래스명 implements 인터페이스명 { .. } 상속 받은 객체에 자동 tatic final 로 자동 추가 됨