์ถ”์ƒํ™” 2

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

Interface (์ธํ„ฐํŽ˜์ด์Šค) ? - ํ•˜๋‚˜ ์ด์ƒ์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  interface ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•˜๋ฉฐ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์—†์Œ - ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”์„œ๋“œ์˜ ์„ ์–ธ๋งŒ ์žˆ๊ณ  abstract ํ‚ค์›Œ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฉฐ, ์‹ค์ œ ๊ตฌํ˜„์€ ์ƒ์† ๋ฐ›์€ ์ž์‹ ํด๋ž˜์Šค์—์„œ ์ด๋ฃจ์–ด์ง interface Car { public void drive(); } public class ElectricCar implements Car { public void drive() { System.out.println("์ „๊ธฐ์ฐจ ์ฃผํ–‰"); } } ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ•„์š”์„ฑ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ž์‹ ํด๋ž˜์Šค์—์„œ ์šฉ๋„์— ๋งž๊ฒŒ ์žฌ์ •์˜ํ•จ์œผ๋กœ์จ ๋‹คํ˜•์„ฑ์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋ฉฐ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์— ๋„์›€์„ ์คŒ ํด๋ž˜์Šค ..

JAVA 2024.01.08

[Java] ์ถ”์ƒํ™”์™€ ์ถ”์ƒ ํด๋ž˜์Šค

์ถ”์ƒํ™”(abstraction) ? ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ๋‚˜ํƒ€๋ƒ„์œผ๋กœ์จ ํ•ต์‹ฌ์— ์ง‘์ค‘ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฐœ๋… ์ถ”์ƒํ™”์˜ ํ•„์š”์„ฑ ๋ณต์žก์„ฑ ๊ฐœ์„  : ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋งŒ์„ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ๊ฐ์ฒด ๊ฐ„์˜ ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ ์ค‘๋ณต ๋ฐฉ์ง€ : ๊ณตํ†ต์ ์ธ ์ฝ”๋“œ๋ฅผ ๋ณ„๋กœ๋„ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ ๋ณด์•ˆํ–ฅ์ƒ : ํ”„๋กœ๊ทธ๋žจ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ˆจ๊น€์œผ๋กœ์จ ์ฝ”๋“œ ๋ณด์•ˆ์— ๋„์›€์ด ๋จ ์ถ”์ƒํ™”์˜ ์œ ํ˜• ๊ณผ์ • ์ถ”์ƒํ™” : ์ƒ์„ธ ์ˆ˜ํ–‰ ๋‹จ๊ณ„ ๊ณ ๋ ค ์ „์— ์ƒ์œ„ ์ˆ˜์ค€์—์„œ ์ˆ˜ํ–‰ ํ๋ฆ„๋งŒ ๋จผ์ € ์„ค๊ณ„ํ•˜๋Š” ์›๋ฆฌ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™” : ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ์„ค๊ณ„ ์›๋ฆฌ ์ œ์–ด ์ถ”์ƒํ™” : ์ œ์–ด ํ๋ฆ„์„ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œํ˜„์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ์„ค๊ณ„ ์›๋ฆฌ ์ถ”์ƒํ™” ๊ตฌํ˜„ ๋ฐฉ๋ฒ• ์ถ”์ƒ ํด๋ž˜์Šค ํ•˜๋‚˜ ์ด์ƒ์˜ ์ถ”์ƒ ๋ฉ”..

JAVA 2024.01.08