티스토리 뷰
[주제]
- 추상 클래스와 인터페이스
[중요]
1. 추상 클래스
- class 앞에 'abstract'를 붙임
- 추상 메소드를 하나 이상 포함하고 있는 클래스
- 반드시 상속이 필요함
2. 추상 메소드
- 내용은 없고 사용할 예정이라고 선언만 한 상태
- 사용하기 위해선 내부 또는 외부 클래스에서 내용에 대한 정의 필요
- 메소드가 선언만 되어있거나 정의까지 되어있는 것이 섞여져 있음
3. 인터페이스
- 클래스는 'implements'를 붙여서 인터페이스를 상속 받을 수 있음
- 메소드가 선언만 되어있음
- 반드시 상속이 필요함
★ 각 차이점
- 클래스: 메소드 선언, 정의가 전부 되어있음
- 추상 클래스: 추상 메소드와 일반 메소드(정의된)
- 인터페이스: 메소드가 선언만 되어있음
※ c언어 header 파일과 흡사
[소스]
■ abMyClass.java
package interfaceClass; public abstract class abMyClass { // 추상 클래스 /* * [추상] * abstract: 추상 * abstract class * * [추상 클래스] * 추상 메소드를 하나 이상 포함하고 있는 클래스 * 반드시 상속이 필요함 * * [추상 메소드] * 내용은 없고 사용할 예정이라고 선언만 한 상태 * - 사용하기 위해선 내부 또는 외부 클래스에서 내용에 대한 정의 필요 * * [중요] * 메소드가 선언만 되어있거나 정의까지 되어있는 것이 섞여져 있음 */ abstract public void disName(); // 추상 메소드 public void dispCompany() { System.out.println("abMyClass dispComany()"); } } | cs |
■ youClass.java
package interfaceClass; public class youClass extends abMyClass{ public void disName() { System.out.println("abMyClass disName()"); } } | cs |
■ myInterface.java
package interfaceClass; public interface myInterface { /* * [인터페이스] * interface: 메소드가 선언만 되어있음 * 반드시 상속이 필요함 * * [클래스와의 차이점] * 클래스: 메소드 선언, 정의가 전부 되어있음 * 추상 클래스: 추상 메소드와 일반 메소드(정의된) * * [중요] * 메소드가 선언만 되어있음 ※ c언어 header 파일과 흡사 */ public void disName(); public void dispCompany(); } | cs |
■ MyClass.java
package interfaceClass; public class MyClass implements myInterface{ public void disName() { System.out.println("MyClass disName()"); } public void dispCompany() { System.out.println("MyClass dispComany()"); } } | cs |
■ mainClass.java
package interfaceClass; public class mainClass { public static void main(String[] args) { youClass ycls = new youClass(); ycls.disName(); ycls.dispCompany(); // 메인에서 'disName' 메소드를 정의 abMyClass mcls = new abMyClass() { @Override public void disName() { System.out.println("abMyClass disName()"); } }; mcls.disName(); mcls.dispCompany(); MyClass cls = new MyClass(); cls.disName(); cls.dispCompany(); } } | cs |
■ 실행결과
[첨부 파일]
'프로그래밍 언어 > Java(연습)' 카테고리의 다른 글
해시맵 (0) | 2016.05.12 |
---|---|
배열 리스트, 연결 리스트 (0) | 2016.05.11 |
클래스(상속), Over Ride (0) | 2016.05.09 |
선수 관리 프로그램(스택 구조, 클래스 연습) (0) | 2016.05.05 |
야구게임(객체 지향 클래스 연습) (0) | 2016.05.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 일기
- 자료구조
- wfd
- Delphi
- 문법
- 교육센터
- 말하기
- 계산기
- System
- 알고리즘
- 정렬
- Pte
- 작문
- 독해
- Reference
- SysUtils
- 설명
- ADODB
- 대상
- tdataset
- SWT
- 왕초보 영어회화 100일의 기적
- 스택
- RA
- java
- VCL
- 영어
- 상황
- 여행영어 100일의 기적
- 응용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함