☕ YalcoChicken.java

public class YalcoChicken {
    protected static final String CREED = "우리의 튀김옷은 얄팍하다.";

    private final int no;
    public String name;

    //  ⭐️ 필수 - no가 final이고 초기화되지 않았으므로
    public YalcoChicken(int no, String name) {
        this.no = no;
        this.name = name;
    }

    public void changeFinalFields () {
        // ⚠️ 불가
        this.no++;
    }

    public final void fryChicken () {
        System.out.println("염지, 반죽입히기, 튀김");
    }
}

☕ YalcoChickenDT.java

public final class YalcoChickenDT extends YalcoChicken {
		public YalcoChickenDT(int no, String name) {
        super(no, name);
    }

    //  ⚠️ 불가
    public void fryChicken () {
        System.out.println("염지, 반죽입히기, 미원, 튀김");
    }

		// 생성자 추가할 것
}

☕ Main.java

				String ycCreed = YalcoChicken.CREED;
        YalcoChicken.CREED = "우리의 튀김옷은 바삭하다"; // ⚠️ 불가

        final YalcoChicken store1 = new YalcoChicken(3, "판교");

				//  ⚠️ 불가
        store1 = new YalcoChicken(17, "강남");
        //  💡 요소 변경은 가능
        store1.name = "선릉";

☕ YalcoChickenHighWayDT.java

// ⚠️ 불가
public class YalcoChickenHighWayDT extends YalcoChickenDT {
}

final 필드

final 메서드

final 인스턴스