Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 히든 스토리
- 참조 계수
- 수부타이
- 공헌감
- 과제의 분리
- docker
- apache kafka
- 월칙
- 레퍼런스 복사
- colllection
- 칭기즈칸의 위대한 장군 수부타이
- try-with-resources
- node
- try width resources
- Infresh
- sentry
- kubernetes
- 모두가 기다리는 사람
- 이펙티브 자바
- java
- CSS
- ESG
- 비메모리 자원
- Container
- 뉴 컨피던스
- 아웃풋법칙
- 부자의그릇
- HTML
- 쿠버네티스
- 도파민형 인간
Archives
- Today
- Total
Hi
추상클래스와 인터페이스의 차이점 본문
추상클래스와 인터페이스의 차이점
=> 상태를 가질수 있다 없다.
추상 클래스는 부모가 기본적인 구현을 제공할 수 있다.
import java.util.Iterator;
interface MP3 {
void play();
void stop();
// default(defender) method - Java 8
default void playOneMinute() {
play();
//...
stop();
}
}
interface MP4 {
default void playOneMinute() {
// play();
//...
// stop();
}
}
class Person {
public void playMusic(MP3 mp3) {
mp3.play();
}
}
class SmartPhone implements MP3, MP4 {
@Override
public void play() {
}
@Override
public void stop() {
}
@Override
public void playOneMinute() {
// MP3.super.playOneMinute();
MP4.super.playOneMinute();
}
}
class iPod implements MP3 {
@Override
public void play() {
}
@Override
public void stop() {
}
}
public class Sample_0326 {
public static void main(String[] args) {
Person person = new Person();
// person.playMusic(new SmartPhone());
person.playMusic(new iPod());
}
}
'Programming > Java' 카테고리의 다른 글
스택을 만들어보자 (0) | 2018.03.29 |
---|---|
Iterator의 순회 (0) | 2018.03.28 |
Iterator (0) | 2018.03.28 |
SOLID (0) | 2018.03.28 |
컴퓨터 네트워크 (0) | 2018.03.28 |