-
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
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
목차
추상클래스
인터페이스
Static과Final의 의미
Inner클래스
자바 주요 클래스
예외처리
인터페이스
Static과Final의 의미
Inner클래스
자바 주요 클래스
예외처리
본문내용
추상클래스 (abstract class)
특성이 구체적으로 구현되지 않는 클래스
new 연산자로 객체를 생성할 수 없음.
추상 메소드
메소드의 인터페이스만 정의되어 있는 메소드
메소드의 리턴 타입 부분 앞에 abstract라는 키워드를 기술
추상 메소드 형태
추상 메소드는 함수의 몸체를 가지지 않는다.
추상 메소드를 가지는 모든 클래스를 추상 클래스라고 한다.
추상 클래스는 클래스 선언 시에 abstract라는 키워드를
추상 클래스로부터 상속받는 경우에 서브 클래스는 추상 메소드를 구현(implement)해야 한다.
추상 클래스와 유사하고, 다중 상속을 지원하기 위해서 제공되는 개념
interfacemodifier : public abstrac
모든 인터페이스는 기본적으로 public이고 abstract이다.
또한 abstract 모디파이어는 더 이상 사용되지 않는다.
interfacefieldmodifier : public static final
인터페이스내부에 선언된 멤버 필드는 기본적으로 public, static, final이다
interfacemethodmodifier : public abstract
인터페이스내부에 선언된 메소드는 기본적으로 public, abstract이다.
interface가 필요한 이유.
가정 :
어떤 가계는 물건을 팔 때 돈 이외 경제적 가치가 있는 것을 받는다.
Shop 클래스의 sell() 메소드는 매개 변수로 Money 타입뿐만 아니라 다른 자료형을 받을 수 있어야 한다. 그런데 Money와 Watch는 모두 물건이라는 Thing 클래스로부터 상속받기 때문에 sell(Thing v) 형태로 작성한다면, 돈뿐만 아니라 시계도 받을 수 있을 것이다.
문제점:
문제는 쓰레기(Trash) 클래스도 Thing으로부터 상속받는다.
sell(Thing v)는 쓰레기도 매개 변수로 받을 수 있는 문제가 발생한다.
해결책:
다중 상속을 사용하면 보다 간단하게 해결 가능하다.
예를 들어 Money와 Watch가 Thing뿐만 아니라 다른 것(예:Valuable)에서도 상속 받는다면 메소드를 sell(Valueable v) 형태로 작성할 수 있을 것이다.
자바에서 클래스는 단일 상속만 가능하므로 다중 상속을 지원하기 위해서 interface라는 것이 필요하게 되었다.
추상 클래스는 클래스의 메소드와 멤버 필드의 일부분은 구현,
cf) 인터페이스는 전혀 구현되어 있지 않음
추상 클래스를 이용하는 경우에는 단일 상속만 지원
cf) 인터페이스는 다중 상속 (multiple inheritance)을 할 수 있음
인테페이스로부터 상속받기 위해서 implements라는 키워드를 사용
인터페이스를 임플리멘츠하는 것도 상속과 같은 개념
인터페이스 특성
인터페이스의 멤버필드는 디폴드로 static, final로 선언
따라서 인터페이스의 멤버필드의 값을 변경하려는 시도는 컴파일 시에 에러를 발생
인터페이스의 임플리멘츠도 상속과 같은 개념
인터페이스를 임플리멘츠한 서브클래스는 인터페이스의 멤버필드를 상속받아서 사용할 수 있다.
인터페이스의 상속은 클래스와 마찬가지로 키워드 extends를 사용
final 클래스
그 클래스는 더 이상 상속을 통해서 재사용할 수 없음
final 클래스를 상속받으려는 클래스는 컴파일 시에 에러가 발생
클래스 앞에 final 키워드 사용
final 메소드
final이 메소드에 선언된 경우, 오버라이딩이 불가능
메소드 앞에 final 키워드 사용
특성이 구체적으로 구현되지 않는 클래스
new 연산자로 객체를 생성할 수 없음.
추상 메소드
메소드의 인터페이스만 정의되어 있는 메소드
메소드의 리턴 타입 부분 앞에 abstract라는 키워드를 기술
추상 메소드 형태
추상 메소드는 함수의 몸체를 가지지 않는다.
추상 메소드를 가지는 모든 클래스를 추상 클래스라고 한다.
추상 클래스는 클래스 선언 시에 abstract라는 키워드를
추상 클래스로부터 상속받는 경우에 서브 클래스는 추상 메소드를 구현(implement)해야 한다.
추상 클래스와 유사하고, 다중 상속을 지원하기 위해서 제공되는 개념
interfacemodifier : public abstrac
모든 인터페이스는 기본적으로 public이고 abstract이다.
또한 abstract 모디파이어는 더 이상 사용되지 않는다.
interfacefieldmodifier : public static final
인터페이스내부에 선언된 멤버 필드는 기본적으로 public, static, final이다
interfacemethodmodifier : public abstract
인터페이스내부에 선언된 메소드는 기본적으로 public, abstract이다.
interface가 필요한 이유.
가정 :
어떤 가계는 물건을 팔 때 돈 이외 경제적 가치가 있는 것을 받는다.
Shop 클래스의 sell() 메소드는 매개 변수로 Money 타입뿐만 아니라 다른 자료형을 받을 수 있어야 한다. 그런데 Money와 Watch는 모두 물건이라는 Thing 클래스로부터 상속받기 때문에 sell(Thing v) 형태로 작성한다면, 돈뿐만 아니라 시계도 받을 수 있을 것이다.
문제점:
문제는 쓰레기(Trash) 클래스도 Thing으로부터 상속받는다.
sell(Thing v)는 쓰레기도 매개 변수로 받을 수 있는 문제가 발생한다.
해결책:
다중 상속을 사용하면 보다 간단하게 해결 가능하다.
예를 들어 Money와 Watch가 Thing뿐만 아니라 다른 것(예:Valuable)에서도 상속 받는다면 메소드를 sell(Valueable v) 형태로 작성할 수 있을 것이다.
자바에서 클래스는 단일 상속만 가능하므로 다중 상속을 지원하기 위해서 interface라는 것이 필요하게 되었다.
추상 클래스는 클래스의 메소드와 멤버 필드의 일부분은 구현,
cf) 인터페이스는 전혀 구현되어 있지 않음
추상 클래스를 이용하는 경우에는 단일 상속만 지원
cf) 인터페이스는 다중 상속 (multiple inheritance)을 할 수 있음
인테페이스로부터 상속받기 위해서 implements라는 키워드를 사용
인터페이스를 임플리멘츠하는 것도 상속과 같은 개념
인터페이스 특성
인터페이스의 멤버필드는 디폴드로 static, final로 선언
따라서 인터페이스의 멤버필드의 값을 변경하려는 시도는 컴파일 시에 에러를 발생
인터페이스의 임플리멘츠도 상속과 같은 개념
인터페이스를 임플리멘츠한 서브클래스는 인터페이스의 멤버필드를 상속받아서 사용할 수 있다.
인터페이스의 상속은 클래스와 마찬가지로 키워드 extends를 사용
final 클래스
그 클래스는 더 이상 상속을 통해서 재사용할 수 없음
final 클래스를 상속받으려는 클래스는 컴파일 시에 에러가 발생
클래스 앞에 final 키워드 사용
final 메소드
final이 메소드에 선언된 경우, 오버라이딩이 불가능
메소드 앞에 final 키워드 사용
추천자료
- (JAVA) 문장을 입력 받고, 문장에 포함된 단어의 개수, 평균 길이를 구한뒤, 각 단어를 역순...
- OOP[객체지향프로그래밍] java,JSP,EJB,CBD,UML,C# &.Net
- POS시스템에 대한 연구와 JAVA커피전문점의 실제적용
- 자바입문 13장:자바의 기본 패키지
- [JSP][자바 애플릿][JSP의 이해][자바 애플릿의 이해][JSP의 문법][자바 애플릿의 문법]JSP(...
- 2010년 2학기 JAVA프로그래밍 출석대체시험 핵심체크
- 2010년 2학기 JAVA프로그래밍 기말시험 핵심체크
- 2011년 1학기 Java프로그래밍 기말시험 핵심체크
- 메신저 (java, icon)
- 간단한 JAVA Swing을 이용한 계산기
- (JAVA) 돈을 입력받아 각각 잔돈을 나누는 프로그램 & 1부터 99까지 정수를 받아서 3,6,9...
- (JAVA) 그래픽 글자크기 및 순서 변경 소스코드
- (JAVA) 데이터 베이스 입력 소스코드
- [JAVA] 구구단 프로그램 소스,계획안,보고서,설명문
소개글