Java Interface

hj_kwon.logΒ·2022λ…„ 12μ›” 7일

Java

λͺ©λ‘ 보기
2/11
post-thumbnail

πŸ“– Java Interface

✍ μΆ”μƒν΄λž˜μŠ€μ˜ ν•œκ³„

  • μžλ°”ν΄λž˜μŠ€ κ°„μ˜ μƒμ†μ—λŠ” ν•˜λ‚˜μ˜ λΆ€λͺ¨λ§Œ μ‘΄μž¬ν•  수 있기 λ•Œλ¬Έμ—, μ•žμ˜ μƒν™©μ—μ„œ μš”κ΅¬ν•˜λŠ” 닀쀑 μƒμ†μ˜ κ΅¬ν˜„μ€ λΆˆκ°€λŠ₯ν•˜λ‹€.

✍ Interfaceλž€?

  • μ™„λ²½ν•œ 좔상화λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ Java class의 ν•œ μ’…λ₯˜μ΄λ‹€.
  • 닀쀑 상속이 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— μš©λ„λ³„λ‘œ μ„ΈλΆ„ν™”ν•˜μ—¬ ν•„μš”ν•œ μš”μ†Œλ§Œ 상속할 수 μžˆλ‹€.
  • λ™μΌν•œ λͺ©μ  ν•˜μ— λ™μΌν•œ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κ²Œλ” κ°•μ œν•˜λŠ” 것이 λ°”λ‘œ μΈν„°νŽ˜μ΄μŠ€μ˜ 역할이지 κ°œλ…μ΄λ‹€.
  • μžλ°”μ˜ λ‹€ν˜•μ„±μ„ κ·ΉλŒ€ν™”ν•˜μ—¬ κ°œλ°œμ½”λ“œ μˆ˜μ •μ„ 쀄이고 ν”„λ‘œκ·Έλž¨ μœ μ§€λ³΄μˆ˜μ„±μ„ 높이기 μœ„ν•΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•œλ‹€.

πŸ€” 비ꡐ

μΆ”μƒν΄λž˜μŠ€

  • λ©€λ²„λ³€μˆ˜, μƒμ„±μž, λ©”μ„œλ“œ μΆ”μƒλ©”μ„œλ“œλ₯Ό 포함할 수 μžˆλ‹€.
  • 이 클래슀λ₯Ό μƒμ†λ°›λŠ” μžμ‹ ν΄λž˜μŠ€λŠ” λ‹€λ₯Έ 클래슀λ₯Ό 상속받을 수 μ—†λ‹€.
  • 객체의 생성이 λΆˆκ°€λŠ₯ν•˜λ‹€.

μΈν„°νŽ˜μ΄μŠ€

  • μΆ”μƒλ©”μ„œλ“œλ§Œ 포함할 수 μžˆλ‹€.
  • μΈν„°νŽ˜μ΄μŠ€λŠ” 닀쀑 상속이 κ°€λŠ₯ν•˜λ‹€.
  • 객체의 생성이 λΆˆκ°€λŠ₯ν•˜λ‹€.

✍ Interface 상속을 μœ„ν•œ implements ν‚€μ›Œλ“œ

  • μΈν„°νŽ˜μ΄μŠ€ 상속은 implements ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.
  • μΈν„°νŽ˜μ΄μŠ€λ„ 좔상화λ₯Ό κ΅¬ν˜„ν•˜κ³  있기 λ•Œλ¬Έμ—, μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†λ°›λŠ” ν΄λž˜μŠ€λŠ” μΈν„°νŽ˜μ΄μŠ€ λ‚΄μ˜ λͺ¨λ“  λ©”μ„œλ“œλ“€μ„ λ°˜λ“œμ‹œ μž¬μ •μ˜ ν•΄μ•Όν•œλ‹€.

✍ Interface의 닀쀑 상속

  • μΈν„°νŽ˜μ΄μŠ€λŠ” 콀마, 둜 μ—°κ²°ν•˜μ—¬ μ—¬λŸ¬κ°œλ₯Ό λ™μ‹œμ— 상속 받을 수 μžˆλ‹€.
public class Monster implements Fight, Move{


}
  • ν•„μš”ν•œ 경우 λ‹€λ₯Έ ν΄λž˜μŠ€μ™€ λ™μ‹œμ— 상속받을 수 μžˆλ‹€.
public class Monster extends User implements Fight,Move{

}

✍️ Interface 예제

μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•΄μ„œ κ°„λ‹¨ν•œ 세탁기 ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ–΄λ³΄μž

세탁기 μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€μ–΄μ£Όκ³  λ©”μ„œλ“œλ₯Ό 생성해쀀닀.

닀쀑 상속을 μ—°μŠ΅ν•΄λ³΄κΈ° μœ„ν•΄ μƒˆλ‘œμš΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€μ—ˆλ‹€. 건쑰기 μΈν„°νŽ˜μ΄μŠ€

μƒˆλ‘œμš΄ ν΄λž˜μŠ€μ— implements둜 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†ν•˜κ³  wahsinMachine κ³Ό dryMachine을 μƒμ†λ°›μ•„μ˜¨λ‹€. 그리고 λ©”μ„œλ“œμ— 좜λ ₯ν•  값을 λ„£μ–΄μ€€λ‹€.

Main Class에 λ°›μ•„μ˜¨ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λ©΄ 좜λ ₯값이 λ‚˜μ˜¨λ‹€.

profile
κ°œλ°œμžκ°€ λ˜λŠ” κ·Έλ‚ κΉŒμ§€

0개의 λŒ“κΈ€