java #15 interface, 추상클래스
* interface
- 다중 상속 사용 시(다른 기능을 원하는 만큼 받을 수 있다.)
- 약결합의 구현으로 클래스간의 유연성을 높일 수 있다. 자바의 꽃 -> DI
- 객체화가 되지 않는다.
- 생성자가 들어가지 못한다.
- is a 관계의 객체화는 된다.
- 인터페이스끼리 상속된다.
interface 인터페이스
상수 추상메서드 |
- 문법) 접근지정자 interface 인터페이스명 extends 부모인터페이스명...{
public : 외부 패키지에서 사용 가능
default : 외부 패키지에서 사용 불가능
--------------------------------------------------------
구현하는 클래스)
접근지정자 class 클래스명 extends(생략가능) 부모클래스명(생략가능) implements(생략가능) 구현할 인터페이스명(생략가능)
interface |
| |||
구현class |
|
*Abstract class(추상클래스)
- 상속을 위해 만드는 클래스
abstract class 클래스명
변수 메소드 추상메소드
|
- 작성법
. 접근지정자 abstract 반환형 메서드명(매개변수 ...);
public
protected
. body({})가 없으므로 일을 할 수 없고 호출이 불가능.
. 객체화가 되지 않고, 자식클래스가 객체화 될때만 객체화 된다. (자식클래스에 의해 객체화 된다.)
추 |
| |||
자 |
|
* interface와 추상클래스를 동시에 상속받아 구현하는 예제
추상클래스 Person 사람을 객체 모델링 |
| |||
interface 비행하는 사람(수퍼맨)의 기능을 정의 |
| |||
HongGilDong클래스 추상클래스 Person(부모)을 상속받아 구현 |
| |||
비행이 가능한 수퍼맨을 구현한 Clark클래스 추상클래스 Person과 인터페이스 Fly를 상속받아 구현 |
| |||
RunPerson 구현한 클래스를 사용하는 클래스 |
|
'컴퓨터 관련 > JAVA 강의' 카테고리의 다른 글
java #17 배열(array) (0) | 2016.12.18 |
---|---|
java #16 문자열, String클래스 메소드 (0) | 2016.12.18 |
java #14 다형성, 오버로드(overload), 오버라이드(override), Annotation (0) | 2016.12.18 |
java #13 상속(inheritance), super (0) | 2016.12.18 |
java #12 생성자, 멤버변수와 인스턴스변수, this (0) | 2016.12.18 |