🐢 μΈν„°νŽ˜μ΄μŠ€μ™€ 좔상 클래슀 차이

μœ μ‚¬κ°œλ°œμžΒ·2024λ…„ 5μ›” 1일
0

이둠곡뢀

λͺ©λ‘ 보기
8/10
post-thumbnail

πŸ“Œ κ°œμš”

μΈν„°νŽ˜μ΄μŠ€μ™€ μΆ”μƒν΄λž˜μŠ€λŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ λ‹€ν˜•μ„±μ„ κ΅¬ν˜„ν•˜λŠ”λ° μ€‘μš”ν•œ 역할을 ν•œλ‹€.
λ‘˜ λ‹€ μΈμŠ€ν„΄μŠ€ν™” ν•  수 μ—†μœΌλ©°, 상속을 톡해 μžμ‹ ν΄λž˜μŠ€μ—μ„œ κ΅¬ν˜„ν•˜κ±°λ‚˜ ν™•μž₯ν•΄μ•Ό ν•œλ‹€.

λ‘˜λ‹€ 좔상 λ©”μ„œλ“œλ₯Ό 포함할 수 있으며, 이λ₯Ό 톡해 κ³΅ν†΅μ˜ κΈ°λŠ₯을 μ •μ˜ν•˜κ³  μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높일 수 μžˆλ‹€. ν•˜μ§€λ§Œ λ‘˜ μ‚¬μ΄μ—λŠ” λͺ‡ 가지 μ€‘μš”ν•œ 차이점이 μžˆλ‹€.

πŸ“–μΈν„°νŽ˜μ΄μŠ€

  • μΈν„°νŽ˜μ΄μŠ€λŠ” λͺ¨λ“  λ©”μ„œλ“œκ°€ 좔상 λ©”μ„œλ“œλ‘œ μ„ μ–Έλ˜μ–΄μžˆλ‹€.
  • μžλ°” 8λΆ€ν„°λŠ” default λ©”μ„œλ“œμ™€ static λ©”μ„œλ“œλ₯Ό 포함할 수 있게 λ˜μ—ˆλ‹€.
  • μΈν„°νŽ˜μ΄μŠ€λŠ” 닀쀑 상속을 μ§€μ›ν•œλ‹€.
interface MyInterface {
    void method1();
    default void method2() {
        // κΈ°λ³Έ κ΅¬ν˜„
    }
}
  • μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λ©΄ μ—¬λŸ¬ ν΄λž˜μŠ€κ°€ 같은 μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•¨μœΌλ‘œμ¨ λ‹€ν˜•μ„±μ„ κ΅¬ν˜„ν•  수 μžˆλ‹€.
  • μΈν„°νŽ˜μ΄μŠ€λŠ” 특히 APIλ₯Ό 섀계할 λ•Œ μœ μš©ν•˜κ²Œ μ‚¬μš©λœλ‹€.
  • μΈν„°νŽ˜μ΄μŠ€λŠ” κ΅¬ν˜„ ν΄λž˜μŠ€κ°€ λ°˜λ“œμ‹œ κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ” λ©”μ„œλ“œμ˜ λͺ…μ„Έλ₯Ό μ œκ³΅ν•˜λ©°, 이λ₯Ό 톡해 μΌκ΄€λœ λ°©μ‹μœΌλ‘œ 객체λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

πŸ“–μΆ”μƒ 클래슀

  • 좔상 ν΄λž˜μŠ€λŠ” ν•˜λ‚˜ μ΄μƒμ˜ 좔상 λ©”μ„œλ“œλ₯Ό 포함할 수 있으며, 일반 λ©”μ„œλ“œλ‚˜ λ³€μˆ˜(μƒνƒœ) 도 포함할 수 μžˆλ‹€.
  • 좔상 ν΄λž˜μŠ€λŠ” 단일 μƒμ†λ§Œμ„ μ§€μ›ν•œλ‹€.
abstract class MyAbstractClass {
	protected int exampleVar;

    // μƒμ„±μžλ₯Ό 톡해 μ΄ˆκΈ°ν™”
    public MyAbstractClass(int initialValue) {
        this.exampleVar = initialValue;
    }

    abstract void abstractMethod();

    void concreteMethod() {
        System.out.println("The value of exampleVar is: " + exampleVar);
    }
}
  • 좔상 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ κ³΅ν†΅μ˜ μ½”λ“œλ₯Ό 좔상 ν΄λž˜μŠ€μ— κ΅¬ν˜„ν•¨μœΌλ‘œμ¨ μ½”λ“œ 쀑볡을 쀄일 수 μžˆλ‹€.
  • ν•„μš”ν•œ λΆ€λΆ„λ§Œ μžμ‹ ν΄λž˜μŠ€μ—μ„œ κ΅¬ν˜„ν•˜κ²Œ ν•  수 μžˆλ‹€.
  • 좔상 ν΄λž˜μŠ€λŠ” λ³€μˆ˜(μƒνƒœ)λ₯Ό 상속 계측 λ‚΄μ—μ„œ κ³΅μœ ν•˜κ±°λ‚˜, νŠΉμ •ν•œ ν–‰μœ„λ₯Ό μ •μ˜ν•˜λŠ”λ° μžˆμ–΄ 더 μœ μ—°ν•˜κ²Œ ν™œμš©λ  수 μžˆλ‹€.
  • 좔상 ν΄λž˜μŠ€λŠ” 상속을 ν†΅ν•œ κΈ°λŠ₯의 ν™•μž₯을 λͺ©μ μœΌλ‘œ μ‚¬μš©λœλ‹€.
  • 좔상 ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€ν™” ν•  수 μ—†μœΌλ©°, μƒμ†λ°›λŠ” μžμ‹ ν΄λž˜μŠ€μ—μ„œ 좔상 λ©”μ„œλ“œλ₯Ό λͺ¨λ‘ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€. 이λ₯Ό 톡해 클래슀 계측 ꡬ쑰λ₯Ό λͺ…ν™•ν•˜κ²Œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

πŸ“šμ£Όμš” 차이점

μΈν„°νŽ˜μ΄μŠ€μ™€ 좔상 클래슀의 κ°€μž₯ 큰 차이점은 닀쀑 상속과 λ³€μˆ˜(μƒνƒœ) 곡유 여뢀이닀.

μΈν„°νŽ˜μ΄μŠ€λŠ” λ©”μ„œλ“œμ˜ κ΅¬ν˜„μ„ ν¬ν•¨ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 닀쀑 μƒμ†μ—μ„œ λ°œμƒν•  수 μžˆλŠ” λ¬Έμ œκ°€ μ—†μ§€λ§Œ, 좔상 ν΄λž˜μŠ€λŠ” κ΅¬ν˜„ μ½”λ“œλ₯Ό 포함할 수 μžˆμ–΄ 닀쀑 상속 μ‹œ 좩돌의 μœ„ν—˜μ΄ μžˆλ‹€.

그리고 μƒνƒœλ₯Ό κ°€μ§ˆ 수 μ—†λŠ” μΈν„°νŽ˜μ΄μŠ€μ™€λŠ” 달리 좔상 ν΄λž˜μŠ€λŠ” μƒνƒœλ₯Ό λ³΄μœ ν•  수 μžˆλ‹€.
μ΄λŠ” μƒμ†λ°›λŠ” μ„œλΈŒ ν΄λž˜μŠ€λ“€μ΄ 이 μƒνƒœλ₯Ό 상속받아 μ‚¬μš©ν•  수 μžˆμŒμ„ μ˜λ―Έν•˜λ©°, κ³΅ν†΅μ˜ 데이터 ꡬ쑰λ₯Ό κ°–λŠ” 클래슀 계측을 섀계 ν•  λ•Œ μœ μš©ν•˜λ‹€.

profile
κ°œλ°œμžμ™€ μœ μ‚¬ν•œ κ°œλ°œμžμž…λ‹ˆλ‹€

0개의 λŒ“κΈ€