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
- JAVA기초
- 메서드 오버로딩
- 포함관계
- continue문
- multi-threading
- While
- 자바 멀티스레딩
- break문
- 시스템 환경 변수 편집
- 컴파일
- OPP개념
- 접근제어지시자
- 연관관계
- IntelliJ IDEA
- 인텔리제이 기초 설정
- java변수
- JAVA객체지향
- for문
- Java
- 메서드
- 상수
- Thread
- function
- 생성자
- 반복문
- 인텔리제이 한글 깨짐 해결법
- 형 변환
- 집합관계
- this예약어
- Java데이터 타입
Archives
- Today
- Total
최원종의 개발 블로그
인터페이스(interface) 본문
인터페이스란 객체의 동작을 정의하는 추상타입으로, 클래스가 구현해야 할 메서드의 설계도를 제공.
인터페이스는 구현 세부사항을 포함하지 않고, 메서드의 시그니처(이름, 매개변수, 반환 타입)만 정의하고, 이를 구현하는 클래스가 실제 동작을 제공. 이를 통해 다형성, 우연성, 코드 재사용성을 높일 수 있다.
인터페이스 개념
- 모든 메서드가 추상 메서드로 선언됨 public abstract
- 모든 변수는 상수로 선언됨 public static final
// 특징
// 멤버 변수, 일반 구현 메서드를 가질 수 없고, 오직 추상 메서드와 static 상수만을 가질 수 있다.
// 인터페이스는 표준, 규약(강제성 있는 약속)
// 추상 클래스보다 추상화가 더 높다.
코드
-interface Animal
package com.tenco._interface;
//class 키워드 대신 interface 로 명시 하여야한다
public interface Animal {
//여기 안에 선성된 모든 변수는 public static final 상수로 선언됨
//여기 안에 선성된 모든 메서드는 public abstract 추상 메서드이다
public static final int NUMBER = 1;
//메서드에 선언부만 있고 바디가 없다 - 추상 메서드
public abstract void eat();
//인터페이스에 특징 때문에 심지어 public abstract 키워드 생략도 가능하다
void move(); //public abstract 컴파일러가 자동으로 추가 해줌
}
-interface RemoteController
package com.tenco._interface;
//인터페이스 선언
public interface RemoteController {
//인터페이스란?
// 구현된 것이 아무것도 없는 밑 그림만 있는 기본 설계도
//특징
//멤버 변수, 일반 구현 메서드를 가질 수 없고, 오직 추상 메서드와 static 상수만을 가질 수 있다
//인터페이스는 표준, 규약(강제성 있는 약속)
//추상 클래스 보다 추상화가 더 높다.
public abstract void turnOn();
public abstract void turnOff();
}
클래스 코드
package com.tenco._interface;
public class Television extends HomeAppliances implements RemoteController {
@Override
public void turnOn() {
System.out.println("티비 전원 ON");
}
@Override
public void turnOff() {
System.out.println("티비 전원 OFF");
}
}
package com.tenco._interface;
public class Refrigerator extends HomeAppliances implements SoundEffect {
@Override
public void turnOn() {
System.out.println("냉장고 전원 ON");
}
@Override
public void turnOff() {
System.out.println("냉장고 전원 OFF");
}
@Override
public void soundOn() {
System.out.println("뚜루뚜루~~~");
}
}
-interface SoundEffect
package com.tenco._interface;
public interface SoundEffect {
public abstract void soundOn();
}
'Java > Java 객체지향' 카테고리의 다른 글
| 인터페이스 활용 (0) | 2026.03.06 |
|---|---|
| 추상 클래스(abstract class) (0) | 2026.03.06 |
| 다형성(Polymorphism) (0) | 2026.03.05 |
| 포함관계와 집합관계 (0) | 2026.03.04 |
| 연관관계(Association) (0) | 2026.03.04 |
