////
Search
โ˜•

Java

๋ฌธ์ œ ํ’€์ด
์ฑ•ํ„ฐ 16 : ๊ตฌ์„ฑ 5
package org.example.likelion.ch16.No2; // ๋ฌธ์ œ : ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๋„๋ก ํ•ด์ฃผ์„ธ์š”. // ์กฐ๊ฑด : ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ฒ˜๋ฆฌํ•ด์ฃผ์„ธ์š”. // ์กฐ๊ฑด : `a๋ฌด๊ธฐ` ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํ’€์–ด์ฃผ์„ธ์š”. // ์กฐ๊ฑด : ์นผ, ์ฐฝ, ์ง€ํŒก์ด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. public class Main { public static void main(String[] args) { ์ „์‚ฌ a์ „์‚ฌ = new ์ „์‚ฌ(); a์ „์‚ฌ.๊ณต๊ฒฉ(); // ์นผ(์œผ)๋กœ ๊ณต๊ฒฉํ•ฉ๋‹ˆ๋‹ค. // ๋ฐ๋ฏธ์ง€ : 78 a์ „์‚ฌ.์ฐฝ_๋ชจ๋“œ๋กœ_๋ณ€๊ฒฝ(); a์ „์‚ฌ.๊ณต๊ฒฉ(); // ์ฐฝ(์œผ)๋กœ ๊ณต๊ฒฉํ•ฉ๋‹ˆ๋‹ค. // ๋ฐ๋ฏธ์ง€ : 80 a์ „์‚ฌ.์ง€ํŒก์ด_๋ชจ๋“œ๋กœ_๋ณ€๊ฒฝ(); a์ „์‚ฌ.๊ณต๊ฒฉ(); // ์ง€ํŒก์ด(์œผ)๋กœ ๊ณต๊ฒฉํ•ฉ๋‹ˆ๋‹ค. // ๋ฐ๋ฏธ์ง€ : 12 } } class ์ „์‚ฌ { ๋ฌด๊ธฐ a๋ฌด๊ธฐ; ์ „์‚ฌ() { this.a๋ฌด๊ธฐ = new ์นผ(); } void ๊ณต๊ฒฉ() { a๋ฌด๊ธฐ.์‚ฌ์šฉ(); } void ์ฐฝ_๋ชจ๋“œ๋กœ_๋ณ€๊ฒฝ() { this.a๋ฌด๊ธฐ = new ์ฐฝ(); } void ์ง€ํŒก์ด_๋ชจ๋“œ๋กœ_๋ณ€๊ฒฝ() { this.a๋ฌด๊ธฐ = new ์ง€ํŒก์ด(); } } abstract class ๋ฌด๊ธฐ { String ๋ฌด๊ธฐ์ด๋ฆ„; int ๋ฐ๋ฏธ์ง€; void ์‚ฌ์šฉ(){ System.out.println(this.๋ฌด๊ธฐ์ด๋ฆ„ + "(์œผ)๋กœ ๊ณต๊ฒฉํ•ฉ๋‹ˆ๋‹ค."); System.out.println("๋ฐ์ด๋ฏธ : " + this.๋ฐ๋ฏธ์ง€); } } class ์นผ extends ๋ฌด๊ธฐ { ์นผ(){ this.๋ฌด๊ธฐ์ด๋ฆ„ = "์นผ"; this.๋ฐ๋ฏธ์ง€ = 78; } } class ์ฐฝ extends ๋ฌด๊ธฐ { ์ฐฝ(){ this.๋ฌด๊ธฐ์ด๋ฆ„ = "์ฐฝ"; this.๋ฐ๋ฏธ์ง€ = 80; } } class ์ง€ํŒก์ด extends ๋ฌด๊ธฐ { ์ง€ํŒก์ด(){ this.๋ฌด๊ธฐ์ด๋ฆ„ = "์ง€ํŒก์ด"; this.๋ฐ๋ฏธ์ง€ = 12; } }
Java
๋ณต์‚ฌ
package org.example.likelion.ch16.No4; // ๋ฌธ์ œ : ๊ตฌ์„ฑ(์ „์‚ฌ๋Š” ๋ฌด๊ธฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. public class Main { public static void main(String[] args) { ์ „์‚ฌํƒ€์ž…A a์ „์‚ฌํƒ€์ž…A = new ์ „์‚ฌํƒ€์ž…A(); a์ „์‚ฌํƒ€์ž…A.๊ณต๊ฒฉ(); ์ „์‚ฌํƒ€์ž…B a์ „์‚ฌํƒ€์ž…B = new ์ „์‚ฌํƒ€์ž…B(); a์ „์‚ฌํƒ€์ž…B.๊ณต๊ฒฉ(); ์ „์‚ฌํƒ€์ž…C a์ „์‚ฌํƒ€์ž…C = new ์ „์‚ฌํƒ€์ž…C(); a์ „์‚ฌํƒ€์ž…C.๊ณต๊ฒฉ(); ์ „์‚ฌํƒ€์ž…D a์ „์‚ฌํƒ€์ž…D = new ์ „์‚ฌํƒ€์ž…D(); a์ „์‚ฌํƒ€์ž…D.๊ณต๊ฒฉ(); } } abstract class ์ „์‚ฌ { ๋ฌด๊ธฐ a๋ฌด๊ธฐ; void ๊ณต๊ฒฉ() { a๋ฌด๊ธฐ.์‚ฌ์šฉ(); } } class ์ „์‚ฌํƒ€์ž…A extends ์ „์‚ฌ { ์ „์‚ฌํƒ€์ž…A() { this.a๋ฌด๊ธฐ = new ์นผ(); } } class ์ „์‚ฌํƒ€์ž…B extends ์ „์‚ฌ { ์ „์‚ฌํƒ€์ž…B() { this.a๋ฌด๊ธฐ = new ์นผ(); } } class ์ „์‚ฌํƒ€์ž…C extends ์ „์‚ฌ { ์ „์‚ฌํƒ€์ž…C() { this.a๋ฌด๊ธฐ = new ํ™œ(); } } class ์ „์‚ฌํƒ€์ž…D extends ์ „์‚ฌ { ์ „์‚ฌํƒ€์ž…D() { this.a๋ฌด๊ธฐ = new ํ™œ(); } } abstract class ๋ฌด๊ธฐ { String ๋ฌด๊ธฐ๋ช…; void ์‚ฌ์šฉ() { System.out.println(this.๋ฌด๊ธฐ๋ช… + "๋กœ ๊ณต๊ฒฉ"); } } class ์นผ extends ๋ฌด๊ธฐ{ ์นผ() { this.๋ฌด๊ธฐ๋ช… = "์นผ"; } } class ํ™œ extends ๋ฌด๊ธฐ { ํ™œ() { this.๋ฌด๊ธฐ๋ช… = "ํ™œ"; } }
Java
๋ณต์‚ฌ
์ฑ•ํ„ฐ 17 : ๊ตฌ์„ฑ 6
package org.example.likelion.ch17.No1; /* ๊ฐ€์ • ์šฐ๋ฆฌ๋Š” ๊ฒŒ์ž„๊ฐœ๋ฐœํšŒ์‚ฌ์— ์ž…์‚ฌํ–ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์„ฑ๊ฒฉ์ข‹์€ ์‚ฌ์ˆ˜ ํ•œ๋ช…์ด ์žˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•  ๊ฒŒ์ž„์€ ์˜ค๋ฆฌ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์ด๋‹ค. ์„ ์ž„์ด ๋‚˜์˜ ๊ฐœ๋ฐœ์„ ๋„์™€์ฃผ์ง„ ์•Š์ง€๋งŒ ์กฐ์–ธ์€ ํ•ด์ค€๋‹ค. */ /* ์š”๊ตฌ์‚ฌํ•ญ - D1 ์š”๊ตฌ : ์˜ค๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚ ๊ฒŒํ•˜์‹œ์˜ค. - D1 ์™„๋ฃŒ : ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌ - D2 ์š”๊ตฌ : ๊ฒŒ์ž„์˜ ๋””ํ…Œ์ผ์„ ์‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ `์ฒญ๋‘ฅ์˜ค๋ฆฌ`์™€ `ํฐ์˜ค๋ฆฌ`๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚ ๊ฒŒํ•˜์‹œ์˜ค. - D2 ์™„๋ฃŒ : ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌ - D3 ์š”๊ตฌ : ์˜ค๋ฆฌ ๊ณ„์—ด์˜ ํด๋ž˜์Šค์— ๋‚ ๋‹ค ๋ฉ”์„œ๋“œ๊ฐ€ ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. - D3 ์™„๋ฃŒ : ์ƒ์†์„ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌ - D4 ์š”๊ตฌ : ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ๊ณ ๋ฌด์˜ค๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚ ๊ฒŒ ํ•˜์‹œ์˜ค. - D4 ์™„๋ฃŒ : ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌ - D5 ์š”๊ตฌ : ์ฃผ๋ง ์ฃผ์ฃผํšŒ์˜์—์„œ ๊ณ ๋ฌด์˜ค๋ฆฌ๊ฐ€ ํ•˜๋Š˜์„ ๋‚ ์•„๋‹ค๋‹ˆ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ํƒœํด์ด ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฌด์˜ค๋ฆฌ ๊ณ„์—ด์€ ํ•˜๋Š˜์„ ๋‚  ์ˆ˜ ์—†๊ฒŒ ํ•ด์ฃผ์„ธ์š”. - D5 ์™„๋ฃŒ : ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌ - D6 ์š”๊ตฌ : ๊ณ ๋ฌด์˜ค๋ฆฌ๊ฐ€ ๋ฐ˜์‘์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฌด2์˜ค๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚ ๊ฒŒ ํ•ด์ฃผ์„ธ์š”. - D6 ์™„๋ฃŒ : ๊ณ ๋ฌด์˜ค๋ฆฌ๊ฐ€ ๋ฐ˜์‘์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฌด2์˜ค๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚ ๊ฒŒ ํ•ด์ฃผ์„ธ์š”. - D7 ์š”๊ตฌ : ๊ณ ๋ฌด์˜ค๋ฆฌ๊ณ„์—ด์—์„œ ๋‚ ๋‹ค ๋ฉ”์„œ๋“œ์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. - D7 ์™„๋ฃŒ : ์ƒ์†์œผ๋กœ ํ•ด๊ฒฐ - D8 ์š”๊ตฌ : ์ž๋ฐ”์—์„œ ๋‹ค์ค‘์ƒ์†์€ ๋ถˆ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์†์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์†์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ณ ๋ฌด์˜ค๋ฆฌ๊ณ„์—ด์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. */ public class Main { public static void main(String[] args) { ์ฒญ๋‘ฅ์˜ค๋ฆฌ a์ฒญ๋‘ฅ์˜ค๋ฆฌ = new ์ฒญ๋‘ฅ์˜ค๋ฆฌ(); a์ฒญ๋‘ฅ์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์˜ค๋ฆฌ๊ฐ€ ๋‚ ๊ฐœ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค. ํฐ์˜ค๋ฆฌ aํฐ์˜ค๋ฆฌ = new ํฐ์˜ค๋ฆฌ(); aํฐ์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์˜ค๋ฆฌ๊ฐ€ ๋‚ ๊ฐœ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค. ๊ณ ๋ฌด์˜ค๋ฆฌ a๊ณ ๋ฌด์˜ค๋ฆฌ = new ๊ณ ๋ฌด์˜ค๋ฆฌ(); a๊ณ ๋ฌด์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์ €๋Š” ๋‚  ์ˆ˜ ์—†์–ด์š”. ใ…œใ…  ๊ณ ๋ฌด2์˜ค๋ฆฌ a๊ณ ๋ฌด2์˜ค๋ฆฌ = new ๊ณ ๋ฌด2์˜ค๋ฆฌ(); a๊ณ ๋ฌด2์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์ €๋Š” ๋‚  ์ˆ˜ ์—†์–ด์š”. ใ…œใ…  } } abstract class ์˜ค๋ฆฌ { ๋น„ํ–‰์•„์ดํ…œ a๋น„ํ–‰์•„์ดํ…œ; ์˜ค๋ฆฌ() { a๋น„ํ–‰์•„์ดํ…œ = new ๋‚ ๊ฐœ๋น„ํ–‰์•„์ดํ…œ(); } void ๋‚ ๋‹ค() { this.a๋น„ํ–‰์•„์ดํ…œ.์‚ฌ์šฉ(); } } // ์˜ค๋ฆฌ => ๋ถ€๋ชจ ํด๋ž˜์Šค // ํฐ์˜ค๋ฆฌ => ์ž์‹ ํด๋ž˜์Šค // ํฐ์˜ค๋ฆฌ extends ์˜ค๋ฆฌ => ํฐ์˜ค๋ฆฌ๊ฐ€ ์˜ค๋ฆฌ์˜ ๋Šฅ๋ ฅ์„ ๋ฌผ๋ ค ๋ฐ›๋Š”๋‹ค. // "`ํฐ์˜ค๋ฆฌ`๋Š” `์˜ค๋ฆฌ`์ด๋‹ค." ๋ผ๊ณ  ์ž๋ฐ”์—๊ฒŒ ์•Œ๋ ค์ค€๋‹ค. // `A ๋Š” B ์ด๋‹ค.` ํ…Œ์ŠคํŠธ์— ํ†ต๊ณผํ•˜๋Š” ๊ฒƒ๋งŒ ์ƒ์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค. // ํด๋ž˜์Šค์™€ ๊ฐ์ฒด๋Š” ๋ช…์‚ฌ์ด๋‹ค. // ๋ฉ”์„œ๋“œ๋Š” ๋™์‚ฌ์ด๋‹ค. class ํฐ์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { } class ์ฒญ๋‘ฅ์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { } class ๊ณ ๋ฌด์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { ๊ณ ๋ฌด์˜ค๋ฆฌ() { this.a๋น„ํ–‰์•„์ดํ…œ = new ๋ชป๋‚˜๋Š”๋น„ํ–‰์•„์ดํ…œ(); } } class ๊ณ ๋ฌด2์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { ๊ณ ๋ฌด2์˜ค๋ฆฌ() { this.a๋น„ํ–‰์•„์ดํ…œ = new ๋ชป๋‚˜๋Š”๋น„ํ–‰์•„์ดํ…œ(); } } abstract class ๋น„ํ–‰์•„์ดํ…œ { abstract void ์‚ฌ์šฉ(); } class ๋‚ ๊ฐœ๋น„ํ–‰์•„์ดํ…œ extends ๋น„ํ–‰์•„์ดํ…œ{ @Override void ์‚ฌ์šฉ() { System.out.println("์˜ค๋ฆฌ๊ฐ€ ๋‚ ๊ฐœ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค."); } } class ๋ชป๋‚˜๋Š”๋น„ํ–‰์•„์ดํ…œ extends ๋น„ํ–‰์•„์ดํ…œ { @Override void ์‚ฌ์šฉ() { System.out.println("์ €๋Š” ๋‚  ์ˆ˜ ์—†์–ด์š”. ใ…œใ… "); } }
Java
๋ณต์‚ฌ
package org.example.likelion.ch17.No3; /* ๊ฐ€์ • ์šฐ๋ฆฌ๋Š” ๊ฒŒ์ž„๊ฐœ๋ฐœํšŒ์‚ฌ์— ์ž…์‚ฌํ–ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์„ฑ๊ฒฉ์ข‹์€ ์‚ฌ์ˆ˜ ํ•œ๋ช…์ด ์žˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•  ๊ฒŒ์ž„์€ ์˜ค๋ฆฌ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์ด๋‹ค. ์„ ์ž„์ด ๋‚˜์˜ ๊ฐœ๋ฐœ์„ ๋„์™€์ฃผ์ง„ ์•Š์ง€๋งŒ ์กฐ์–ธ์€ ํ•ด์ค€๋‹ค. */ /* ์š”๊ตฌ์‚ฌํ•ญ - D1 ์š”๊ตฌ : ์˜ค๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚ ๊ฒŒํ•˜์‹œ์˜ค. - D1 ์™„๋ฃŒ : ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌ - D2 ์š”๊ตฌ : ๊ฒŒ์ž„์˜ ๋””ํ…Œ์ผ์„ ์‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ `์ฒญ๋‘ฅ์˜ค๋ฆฌ`์™€ `ํฐ์˜ค๋ฆฌ`๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚ ๊ฒŒํ•˜์‹œ์˜ค. - D2 ์™„๋ฃŒ : ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌ - D3 ์š”๊ตฌ : ์˜ค๋ฆฌ ๊ณ„์—ด์˜ ํด๋ž˜์Šค์— ๋‚ ๋‹ค ๋ฉ”์„œ๋“œ๊ฐ€ ์ค‘๋ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. - D3 ์™„๋ฃŒ : ์ƒ์†์„ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌ - D4 ์š”๊ตฌ : ๊ฒŒ์ž„์˜ ์žฌ๋ฏธ๋ฅผ ์œ„ํ•˜์—ฌ ๊ณ ๋ฌด์˜ค๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚ ๊ฒŒ ํ•˜์‹œ์˜ค. - D4 ์™„๋ฃŒ : ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒ˜๋ฆฌ - D5 ์š”๊ตฌ : ์ฃผ๋ง ์ฃผ์ฃผํšŒ์˜์—์„œ ๊ณ ๋ฌด์˜ค๋ฆฌ๊ฐ€ ํ•˜๋Š˜์„ ๋‚ ์•„๋‹ค๋‹ˆ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์„œ ํƒœํด์ด ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฌด์˜ค๋ฆฌ ๊ณ„์—ด์€ ํ•˜๋Š˜์„ ๋‚  ์ˆ˜ ์—†๊ฒŒ ํ•ด์ฃผ์„ธ์š”. - D5 ์™„๋ฃŒ : ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌ - D6 ์š”๊ตฌ : ๊ณ ๋ฌด์˜ค๋ฆฌ๊ฐ€ ๋ฐ˜์‘์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฌด2์˜ค๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚ ๊ฒŒ ํ•ด์ฃผ์„ธ์š”. - D6 ์™„๋ฃŒ : ๊ณ ๋ฌด์˜ค๋ฆฌ๊ฐ€ ๋ฐ˜์‘์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฌด2์˜ค๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚ ๊ฒŒ ํ•ด์ฃผ์„ธ์š”. - D7 ์š”๊ตฌ : ๊ณ ๋ฌด์˜ค๋ฆฌ๊ณ„์—ด์—์„œ ๋‚ ๋‹ค ๋ฉ”์„œ๋“œ์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. - D7 ์™„๋ฃŒ : ์ƒ์†์œผ๋กœ ํ•ด๊ฒฐ - D8 ์š”๊ตฌ : ์ƒ์†์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์†์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ณ ๋ฌด์˜ค๋ฆฌ๊ณ„์—ด์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. - D8 ์š”๊ตฌ : ์ž๋ฐ”์—์„œ ๋‹ค์ค‘์ƒ์†์€ ๋ถˆ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์†์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์†์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ณ ๋ฌด์˜ค๋ฆฌ๊ณ„์—ด์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด์ฃผ์„ธ์š”. - D8 ์™„๋ฃŒ : ์ƒ์†์ด ์•„๋‹Œ ๊ตฌ์„ฑ์„ ์จ์„œ ํ•ด๊ฒฐ - D9 ์š”๊ตฌ : ํ˜„์งˆ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋กœ์ผ“๋น„ํ–‰์•„์ดํ…œ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”. */ public class Main { public static void main(String[] args) { ์ฒญ๋‘ฅ์˜ค๋ฆฌ a์ฒญ๋‘ฅ์˜ค๋ฆฌ = new ์ฒญ๋‘ฅ์˜ค๋ฆฌ(); a์ฒญ๋‘ฅ์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์˜ค๋ฆฌ๊ฐ€ ๋‚ ๊ฐœ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค. ํฐ์˜ค๋ฆฌ aํฐ์˜ค๋ฆฌ = new ํฐ์˜ค๋ฆฌ(); aํฐ์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์˜ค๋ฆฌ๊ฐ€ ๋‚ ๊ฐœ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค. ๊ณ ๋ฌด์˜ค๋ฆฌ a๊ณ ๋ฌด์˜ค๋ฆฌ = new ๊ณ ๋ฌด์˜ค๋ฆฌ(); a๊ณ ๋ฌด์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์ €๋Š” ๋‚  ์ˆ˜ ์—†์–ด์š”. ใ…œใ…  ๊ณ ๋ฌด2์˜ค๋ฆฌ a๊ณ ๋ฌด2์˜ค๋ฆฌ = new ๊ณ ๋ฌด2์˜ค๋ฆฌ(); a๊ณ ๋ฌด2์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ์ €๋Š” ๋‚  ์ˆ˜ ์—†์–ด์š”. ใ…œใ…  a๊ณ ๋ฌด2์˜ค๋ฆฌ.a๋น„ํ–‰์•„์ดํ…œ = new ๋กœ์ผ“๋น„ํ–‰์•„์ดํ…œ(); a๊ณ ๋ฌด2์˜ค๋ฆฌ.๋‚ ๋‹ค(); // ์ถœ๋ ฅ : ๋กœ์ผ“ํŒŒ์›Œ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค. } } abstract class ์˜ค๋ฆฌ { ๋น„ํ–‰์•„์ดํ…œ a๋น„ํ–‰์•„์ดํ…œ; ์˜ค๋ฆฌ() { a๋น„ํ–‰์•„์ดํ…œ = new ๋‚ ๊ฐœ๋น„ํ–‰์•„์ดํ…œ(); } void ๋‚ ๋‹ค() { a๋น„ํ–‰์•„์ดํ…œ.์ž‘๋™(); } } class ํฐ์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { } class ์ฒญ๋‘ฅ์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { } class ๊ณ ๋ฌด์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { ๊ณ ๋ฌด์˜ค๋ฆฌ() { a๋น„ํ–‰์•„์ดํ…œ = new ๋ชป๋‚˜๋Š”๋น„ํ–‰์•„์ดํ…œ(); } } class ๊ณ ๋ฌด2์˜ค๋ฆฌ extends ์˜ค๋ฆฌ { ๊ณ ๋ฌด2์˜ค๋ฆฌ() { a๋น„ํ–‰์•„์ดํ…œ = new ๋ชป๋‚˜๋Š”๋น„ํ–‰์•„์ดํ…œ(); } } abstract class ๋น„ํ–‰์•„์ดํ…œ { abstract void ์ž‘๋™(); } class ๋‚ ๊ฐœ๋น„ํ–‰์•„์ดํ…œ extends ๋น„ํ–‰์•„์ดํ…œ { void ์ž‘๋™() { System.out.println("๋‚ ๊ฐœ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค."); } } class ๋ชป๋‚˜๋Š”๋น„ํ–‰์•„์ดํ…œ extends ๋น„ํ–‰์•„์ดํ…œ { void ์ž‘๋™() { System.out.println("์ €๋Š” ๋ชป ๋‚ ์•„์š” ใ… ใ… "); } } class ๋กœ์ผ“๋น„ํ–‰์•„์ดํ…œ extends ๋น„ํ–‰์•„์ดํ…œ { void ์ž‘๋™() { System.out.println("๋กœ์ผ“ํŒŒ์›Œ๋กœ ๋‚ ์•„๊ฐ‘๋‹ˆ๋‹ค."); } }
Java
๋ณต์‚ฌ
๊ฐ์ฒด์ง€ํ–ฅ()
์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
โ€ข
์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋ผ
โ€ข
๊ฐ€๋…์„ฑ์ด ์ œ์ผ ์ค‘์š”ํ•˜๋‹ค.
โ€ข
๋ณ€ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ณ€ํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•˜๋ผ
โ€ข
์‘์ง‘๋„๊ฐ€ ๋†’๊ณ , ๊ฒฐํ•ฉ๋„๋Š” ๋‚ฎ์•„์•ผ ํ•œ๋‹ค.
โ€ข
๊ฒฐํ•ฉ๋„
โ—ฆ
๊ฒฐํ•ฉ๋„: ๋‹ค๋ฅธ ์ฝ”๋“œ์— ์–ผ๋งˆ๋‚˜ ์—ฐ๊ฒฐ๋˜๊ณ  ์˜์กดํ•˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๋„
โ—ฆ
์‘์ง‘๋„: ์—ฐ๊ด€๋œ ์ฝ”๋“œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ํ•œ ๊ณณ์— ๋ชจ์—ฌ ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ์ •๋„
โ€ข
๊ฐœ์„  ์˜ˆ์‹œ(์ •๋‹ต1 โ†’ ์ •๋‹ต2)
โ—ฆ
์ •๋‹ต1 ๋ฌธ์ œ์ 
โ–ช
์ค‘๋ณต๋œ ์ฝ”๋“œ๊ฐ€ ๊ฐ ํด๋ž˜์Šค๋งˆ๋‹ค ์„ ์–ธ๋˜์–ด ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๋ชจ๋‘ ๊ณ ์ณ์•ผ๋จ(์‘์ง‘๋„ )
โ–ช
๊ฐ ๋ฌด๊ธฐ์— ์ƒ์„ฑ์ž๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌด๊ธฐ์‚ฌ์šฉ ๋ฌธ์žฅ์ด ์•„์˜ˆ ์‹คํ–‰๋„ ์•ˆ๋จ(๊ฒฐํ•ฉ๋„ )