JAVA

[Java] ์ถ”์ƒํ™”์™€ ์ธํ„ฐํŽ˜์ด์Šค

jjingle 2024. 1. 8. 14:04

Interface (์ธํ„ฐํŽ˜์ด์Šค) ?

- ํ•˜๋‚˜ ์ด์ƒ์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  interface ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•˜๋ฉฐ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์—†์Œ
- ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์„œ๋“œ์˜ ์„ ์–ธ๋งŒ ์žˆ๊ณ  abstract ํ‚ค์›Œ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฉฐ,
   ์‹ค์ œ ๊ตฌํ˜„์€ ์ƒ์† ๋ฐ›์€ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์ด๋ฃจ์–ด์ง

 

interface Car {
	public void drive();
}

public class ElectricCar implements Car {
	public void drive() {
		System.out.println("์ „๊ธฐ์ฐจ ์ฃผํ–‰");
	}
}

 

 

์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•„์š”์„ฑ

  • ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ž์‹ ํด๋ž˜์Šค์—์„œ ์šฉ๋„์— ๋งž๊ฒŒ ์žฌ์ •์˜ํ•จ์œผ๋กœ์จ ๋‹คํ˜•์„ฑ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋ฉฐ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์— ๋„์›€์„ ์คŒ
  • ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ  ์™„์ „ํ•œ ์ถ”์ƒํ™”๋ฅผ ์‹คํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ๊ตฌ์กฐ๋ฅผ ๋”์šฑ ์กฐ์งํ™”ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์ง€๋ณด์ˆ˜์— ๋„์›€์„ ์คŒ

 

์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฃผ์˜์‚ฌํ•ญ

  • ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋งŒ ํฌํ•จํ•ด์•ผํ•˜๋ฉฐ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋Š” ํฌํ•จํ•  ์ˆ˜ ์—†์Œ
  • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•ด์•ผํ•จ
  • ์ธํ„ฐํŽ˜์ด์Šค์— ์„ ์–ธํ•˜๋Š” ๋ณ€์ˆ˜๋Š” ์ฃผ๋กœ ์ƒ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฏ€๋กœ public, static, final์ด ๋ถ™์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฏ€๋กœ ์ด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•  ํ•„์š”๊ฐ€ ์—†์Œ