๐Ÿ’ป ๊ณต๋ถ€ ๊ธฐ๋ก/โ˜• Java

Java | ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต ๋ฌธ์ œ ๋ฐ ํ’€์ด

  • -

ํ•˜๋ฃจ์˜ ๊ณต๋ถ€ ๋‚ด์šฉ 2๊ฐœ์”ฉ ์˜ฌ๋ฆฌ๋‹ค๊ฐ€ ์ตœ๊ทผ ์ „์ž์ •๋ถ€ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๊ณ ,

์—…๋กœ๋“œ๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ๋ฒ”์œ„๋ฉฐ ์กฐ๊ธˆ์”ฉ ์ค„์–ด๋“ค๊ณ  ์žˆ๋‹ค.

 

๋ฌด๋ฆฌํ•˜์ง€ ์•Š๊ณ  ์ตœ๋Œ€ํ•œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ,

๊ณต๋ถ€ํ•˜๋Š” ๋‚ด์šฉ์ด ์ƒ๊ฐ ์ด์ƒ์œผ๋กœ ๋†๋„๊ฐ€ ์žˆ๊ณ  ์‹ฌ์˜คํ•˜๋‹ค.

 

์ต์ˆ™ํ•ด์ง€๋ ค๊ณ  ๋ฌด์ž‘์ • ๋”ฐ๋ผํ•˜๊ธฐ ์ค‘์ธ๋ฐ๋„

์ž˜ ๋”ฐ๋ผ๊ฐ€๊ณ  ์žˆ๋Š”๊ฑด์ง€, ์ž˜ ํ•˜๊ณ  ์žˆ๋Š”๊ฒŒ ๋งž๋Š”๊ฑด์ง€ ์‹ถ๋‹ค.

 

์ด์ „์—๋„ ์ฝ”๋”ฉ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ด๋ ‡๊ฒŒ ๋‚ด ์‹ค๋ ฅ๊ณผ ๋‚˜์˜ ์ƒํƒœ๋ฅผ ์ ๊ฒ€ํ•˜๋Š” ์‹œ๊ธฐ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ,

๋”ฑ ๋‚ด๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šฐ๊ณ  ์ตํžˆ๋Š” ์ˆœ๊ฐ„์ด๋”๋ผ.

 

์ด ์ˆœ๊ฐ„๋„ ์ง€๋‚˜๊ฐˆ ๊ฒƒ์ด๊ณ  ์ž˜ ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ

๋‚ด ๋ชธ ์ž˜ ์‚ดํ”ผ๋ฉด์„œ ์ž˜ ๋ฐฐ์›Œ๋ณด์ž.

 

์„ฑ๊ธ‰ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ๋ง๊ณ ,

์กฐ๊ธˆ์”ฉ ์กฐ๊ธˆ์”ฉ

 

 

์•„๋ƒ.. ๊ทธ๋Ÿฐ ๊ณณ ์•„๋ƒ!!

 


 

[์ถœ์ฒ˜ : ์ ํ”„ ํˆฌ ์ž๋ฐ”]

 

์—ฐ์Šต๋ฌธ์ œ ๋ฐ ํ’€์ด

package Do_Test;

// ์ •๋‹ต ํ’€์ด!!!!

// ๋ฌธ์ œ 1
class Calculator {

	int value;

	Calculator() {
		this.value = 0;
	}

	void add(int val) {
		this.value += val;
	}

	int getValue() {
		return this.value;
	}

	// ๋ฌธ์ œ 3
	void isOdd(int val) {
		if (val % 2 == 0) {
			System.out.println("false");
		} else {
			System.out.println("true");
		}
	}

	// ๋ฌธ์ œ 3 ์ •๋‹ต
	// boolean isOdd(int num) {
	// return num % 2 == 1;
	// }
	// boolean ์œผ๋กœ ์ฐธ ๊ฑฐ์ง“์„ ์ข€ ๋” ๊ฐ„๋‹จ ๋ช…๋ฃŒํ•˜๊ฒŒ ์ถœ๋ ฅํ•˜๊ฒŒ ํ•จ

	// ๋ฌธ์ œ 4
	int avg(int[] arr) {
		// System.out.print(arr[1]); // 3

		int total = 0;

		for (int i = 0; i < arr.length; i++) {
			add(arr[i]);

			total = this.value;
			System.out.println(total); // 25 ์ถœ๋ ฅ
		}

		this.value = total / arr.length;
		// System.out.println(this.value); // 5 ์ถœ๋ ฅ

		return this.value;
	}

	// ๋ฌธ์ œ 4 ์ •๋‹ต
	// ๋ฐฐ์—ด
	// int avg(int[] data) {
	// int total = 0;
	// for (int num : data) {
	// total += num;
	// }
	// return total / data.length;
	// }
	//
	// ๋ฆฌ์ŠคํŠธ
	// int avg(ArrayList<Integer> data) {
	// int total = 0;
	// for (int num : data) {
	// total += num;
	// }
	// return total / data.size();
	// }

}

// ๋ฌธ์ œ 1-1
class UpgradeCalculator extends Calculator { // Calculator๋ฅผ ์ƒˆ๋กœ์šด UpgradeCalculator์— ์ƒ์†
	void minus(int val) { // minus๋ฉ”์†Œ๋“œ ์ƒ์„ฑ
		this.value -= val;
	}
}

// ๋ฌธ์ œ 2
class MaxLimitCalculator extends Calculator {
	@Override
	int getValue() {
		// System.out.println(this.value); // 110
		if (this.value > 100) {
			this.value = 100;
			return this.value;
		} else {
			return super.getValue();
		}
	}
	// ๊ณผ์ •์—์„œ ์กฐ๊ฑด์„ ์ œ์‹œํ•˜๋Š” ๊ฒƒ?
	// ๊ฒฐ๊ณผ์—์„œ ์กฐ๊ฑด์„ ์ œ์‹œํ•˜๋Š” ๊ฒƒ?

	// ๋ฌธ์ œ 2 ์ •๋‹ต
	// class MaxLimitCalculator extends Calculator {
	// void add(int val) {
	// this.value += val;
	// if (this.value > 100) {
	// this.value = 100;
	// }
	// }
	// }

}

// ๋ฌธ์ œ 6
class Calculator_06 {
	int value; // Integer > int

	void add(int val) {
		this.value += val;
	}

	public int getValue() { // Integer > int
		return this.value;
	}
}

// ๋ฌธ์ œ 6 ์ •๋‹ต
// Calculator() {
// this.value = 0;
// }
// ๊ทธ๋ƒฅ ๋‹จ์ˆœํ•˜๊ฒŒ.. Calculator ์˜ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค๊ณ  ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ..
// ์™œ ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ–ˆ์ง€..?

// ๋ฌธ์ œ 7
interface Mineral {
	int getpoint();
}

class Gold implements Mineral {
	public int getpoint() {
		return 100;
	}
}

class Silver implements Mineral {
	public int getpoint() {
		return 90;
	}
}

class Bronze implements Mineral {
	public int getpoint() {
		return 80;
	}
}

// ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์ •๋‹ต์ธ๋ฐ..

class MineralCalculator {
	int value = 0;

	// ์ •๋‹ต
	public void add(Mineral mineral) {
		this.value += mineral.getpoint();
	}
	/*
	 * ๋‹ค์Œ์ฒ˜๋Ÿผ Mineral ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด‘๋ฌผ์˜ ๊ฐ€์น˜๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” getValue ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ๊ด‘๋ฌผ ํด๋ž˜์Šค๋“ค์€
	 * Mineral ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋„๋ก ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  MineralCalculator ํด๋ž˜์Šค์˜ add ๋ฉ”์„œ๋“œ๋Š” ๋ชจ๋“  ๊ด‘๋ฌผ์„ ์˜ค๋ฒ„๋กœ๋”ฉํ•˜์ง€ ์•Š๊ณ 
	 * Mineral ๊ฐ์ฒด๋งŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ˆ˜์ •ํ•œ๋‹ค.
	 */

	// public void add(Mineral mineral) {
	// this.value += 100;
	// }
	//
	// public void add(Silver silver) {
	// this.value += 90;
	// }
	//
	// public void add(Bronze bronze) {
	// this.value += 80;
	// }

	public int getValue() {
		return this.value;
	}
}

// ๋ฌธ์ œ 8
interface Predator_08 {
}

class Animal_08 {
}

class Dog_08 extends Animal_08 {
}

class Lion_08 extends Animal_08 implements Predator_08 {
}

// ๋ฌธ์ œ 9
interface Predator_09 {
	String bark();
}

abstract class Animal_09 {
	public String hello() {
		return "hello";
	}
}

class Dog_09 extends Animal_09 {
}

class Lion_09 extends Animal_09 implements Predator_09 {
	public String bark() {
		return "Bark bark!!";
	}
}

public class T1_Test {

	public static void main(String[] args) {

		// ๋ฌธ์ œ 1 == ์ •๋‹ต!!
		Calculator calA = new Calculator();
		calA.add(10);
		System.out.println(calA.getValue()); // 10 ์ถœ๋ ฅ

		// Calculator ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋Š” UpgradeCalculator๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฐ’์„ ๋บ„ ์ˆ˜ ์žˆ๋Š” minus ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด์ž.
		// ์ฆ‰ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
		UpgradeCalculator calB = new UpgradeCalculator();
		calB.add(10);
		calB.minus(3);
		System.out.println(calB.getValue()); // 10์—์„œ 7์„ ๋บ€ 3์„ ์ถœ๋ ฅ

		// ๋ฌธ์ œ 2 == ๋‹ค๋ฅธ ์ •๋‹ต
		// ๊ฐ์ฒด๋ณ€์ˆ˜ value๊ฐ€ 100 ๋ณด๋‹ค ํฐ ๊ฐ’์€ ๊ฐ€์งˆ ์ˆ˜ ์—†๋„๋ก ์ œํ•œํ•˜๋Š” MaxLimitCalculator ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž.
		// ์ฆ‰ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
		MaxLimitCalculator calC = new MaxLimitCalculator();
		calC.add(50);
		calC.add(70);
		// calC.returnValue(); // void ์‚ฌ์šฉ
		System.out.println(calC.getValue()); // 100 ์ถœ๋ ฅ

		// ๋ฌธ์ œ 3 == ๋‹ค๋ฅธ ์ •๋‹ต
		// ๋‹ค์Œ์˜ ํด๋ž˜์Šค์— ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ ํ™€์ˆ˜์ธ์ง€ ์ง์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•ด ์ฃผ๋Š” ๋ฉ”์„œ๋“œ(isOdd)๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด์ž.
		// (ํ™€์ˆ˜์ด๋ฉด true, ์ง์ˆ˜๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•œ๋‹ค.)
		Calculator CalD = new Calculator();
		CalD.isOdd(57); // ํ™€์ˆ˜์ด๋ฉด true, ์ง์ˆ˜๋ฉด false

		// ๋ฌธ์ œ 4 == ๋‹ค๋ฅธ ์ •๋‹ต
		// ๋‹ค์Œ ํด๋ž˜์Šค์— ์ •์ˆ˜ ๋ฐฐ์—ด ๋˜๋Š” ์ •์ˆ˜์˜ ๋ฆฌ์ŠคํŠธ ์ž…๋ ฅ์‹œ ๊ทธ ํ‰๊ท ๊ฐ’์„ ๊ตฌํ•ด ์ •์ˆ˜๋กœ ๋ฆฌํ„ดํ•˜๋Š” avg ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด์ž.
		int[] data = { 1, 3, 5, 7, 9 };
		Calculator calE = new Calculator();
		int result = calE.avg(data);
		System.out.println(result); // 5 ์ถœ๋ ฅ

		// ๋ฌธ์ œ 5 == ํ‹€๋ฆผ : ์˜ค๋‹ต๋ฉ”๋ชจ ํ™•์ธ
		// ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜๊ณ  ๊ทธ ์ด์œ ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์‹œ์˜ค.
		// import java.util.ArrayList;
		// import java.util.Arrays;
		//
		// public class Sample {
		// public static void main(String[] args) {
		// ArrayList<Integer> a = new ArrayList<>(Arrays.asList(1, 2, 3));
		// == ๋ฐฐ์—ด๋ฆฌ์ŠคํŠธ ์ˆซ์žํ˜•ํƒœ a ๋ณ€์ˆ˜ ์ •์˜ 1, 2, 3
		// ArrayList<Integer> b = a;
		// == b = a?
		// a.add(4);
		// == a ๋ณ€์ˆ˜์— 4 ์ถ”๊ฐ€
		// ๋‹ต์•ˆํ™•์ธ : System.out.println(a==b); // true ์ถœ๋ ฅ
		// System.out.println(b.size());
		// == b ๋ณ€์ˆ˜์˜ ๋ฐฐ์—ด๋ฆฌ์ŠคํŠธ ํฌ๊ธฐ(์‚ฌ์ด์ฆˆ)?
		// }
		// }

		// ๋‚˜์˜ ์˜ˆ์ƒ ์ถœ๋ ฅ : 1, 2, 3 / ์• ์ดˆ์— ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ’์„ ์ƒ๊ฐํ•˜๊ณ  ์ž‘์„ฑํ•จ..;;
		// ์ด์œ  : a ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ ์‹œ ํ”„๋กœ๊ทธ๋žจ ์ˆœ์„œ์— ๋”ฐ๋ฅธ b ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ์œผ๋กœ b ์˜ ์ถœ๋ ฅ๊ฐ’์€ a ์˜ ์ดˆ๊ธฐ๊ฐ’์ด ๋œ๋‹ค.
		// ์ •๋‹ต : 4๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.
		// ์ด์œ  : b ์™€ a ๋Š” ๋ชจ๋‘ ๋™์ผํ•œ ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ
		// ์ด์œ  ํ’€์ด : ๋Œ€์ถฉ b ๊ฐ์ฒด๊ฐ€ a ๊ฐ์ฒด์™€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— a ๊ฐ์ฒด ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์ด ์ถ”๊ฐ€๋˜์–ด์„œ ์ด 4 ๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.
		// a ๊ฐ์ฒด์™€ b ๊ฐ์ฒด์˜ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ArrayList<Integer> b = new ArrayList<>(a); ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‹ ๊ทœ
		// ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

		// ๋ฌธ์ œ 6 == ๋‹ค๋ฅธ ์ •๋‹ต : ์ถœ์ œ์ž์˜ ์˜๋„๊ฐ€ ์•„๋‹Œ ๋“ฏํ•œ ๋‹ต๋ณ€
		// ๋‹ค์Œ์€ Calculator ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ฐ’์„ ๋”ํ•œ ํ›„์— ๊ทธ ๊ฒฐ๊ณผ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
		// Calculator ํด๋ž˜์Šค๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๋‹ค์Œ์˜ ์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•˜์‹œ์˜ค.
		Calculator_06 cal = new Calculator_06();
		cal.add(3); // ์—ฌ๊ธฐ์„œ NullPointerException ์ด ๋ฐœ์ƒํ•œ๋‹ค.
		System.out.println(cal.getValue());

		// Integer ์˜ ์ž˜๋ชป๋œ ํ‘œ๊ธฐ๋กœ int ๋กœ ๋ณ€๊ฒฝํ›„ ์‹คํ–‰ํ•˜๋ฉด ์ •์ƒ ์ž‘๋™

		// ๋ฌธ์ œ 7 ๋ชปํ’€์—ˆ๋‹ค : ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์ดํ•ด๋„ ๋ถ€์กฑ : ๋‹ค์‹œ ๊ณต๋ถ€ ํ•„์š”
		// ๋‹ค์Œ์€ ๊ด‘๋ฌผ์˜ ๊ฐ€์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” MineralCalculator ํด๋ž˜์Šค์™€ ๊ทธ ์‚ฌ์šฉ๋ฒ•์ด ๋‹ด๊ธด ์ฝ”๋“œ์ด๋‹ค.
		// ๊ด‘๋ฌผ ๊ณ„์‚ฐ๊ธฐ๋Š” ๊ธˆ์ธ ๊ฒฝ์šฐ 100, ์€์ธ ๊ฒฝ์šฐ 90, ๊ตฌ๋ฆฌ์˜ ๊ฒฝ์šฐ๋Š” 80์˜ ๊ฐ€์น˜๋ฅผ ๋”ํ•˜๋Š” ๊ธฐ๋Šฅ(add ๋ฉ”์Šค๋“œ)์ด ์žˆ๋‹ค.
		// ํ•˜์ง€๋งŒ ์ด ๊ด‘๋ฌผ ๊ณ„์‚ฐ๊ธฐ๋Š” ๊ด‘๋ฌผ์ด ์ถ”๊ฐ€๋  ๋•Œ๋งˆ๋‹ค add ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
		// ๊ด‘๋ฌผ์ด ์ถ”๊ฐ€๋˜๋”๋ผ๋„ MineralCalculator ํด๋ž˜์Šค๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์‹œ์˜ค.
		MineralCalculator cal_07 = new MineralCalculator();
		cal_07.add(new Gold());
		cal_07.add(new Silver());
		cal_07.add(new Bronze());
		System.out.println(cal_07.getValue()); // 270 ์ถœ๋ ฅ

		// ๋ฌธ์ œ 8 == ์ •๋‹ต
		// ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ, 4๋ฒˆ, 5๋ฒˆ ๋ฌธ์žฅ ์ค‘์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์žฅ์„ ๋ชจ๋‘ ์ฐพ๊ณ  ์˜ค๋ฅ˜์˜ ์›์ธ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์‹œ์˜ค.
		Animal_08 a_08 = new Animal_08(); // 1๋ฒˆ pass
		Animal_08 b_08 = new Dog_08(); // 2๋ฒˆ pass
		Animal_08 c_08 = new Lion_08(); // 3๋ฒˆ pass
		Dog_08 d_08 = new Animal_08(); // 4๋ฒˆ error
		// ์›์ธ : ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ๊ฐ„์„ญํ•˜์ง€ ๋ชปํ•œ๋‹ค.
		// ์ถ”๊ฐ€ ํ•ด์„ค : IS-A ๊ด€๊ณ„ ์„ฑ๋ฆฝ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. : IS-A ๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์ฐพ์•„๋ณด๊ธฐ
		Predator_08 e_08 = new Lion_08(); // 5๋ฒˆ pass?

		// ๋ฌธ์ œ 9 == ์ •๋‹ต : ์›์ธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ข€ ๋” ๊ตฌ์ฒด์ ์ด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ํ’€์–ด๋ณด๊ธฐ
		// ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ, 4๋ฒˆ, 5๋ฒˆ, 6๋ฒˆ ๋ฌธ์žฅ ์ค‘์—์„œ
		// ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์žฅ์„ ๋ชจ๋‘ ์ฐพ๊ณ  ์˜ค๋ฅ˜์˜ ์›์ธ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์‹œ์˜ค.
		Animal_09 a_09 = new Lion_09();
		Lion_09 b_09 = new Lion_09();
		Predator_09 c_09 = new Lion_09();

		System.out.println(a_09.hello()); // 1๋ฒˆ pass
		System.out.println(a_09.bark()); // 2๋ฒˆ error
		// ์›์ธ : ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค๋Š” ํด๋ž˜์Šค ์ง€์ • ํ›„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ?
		// ์ถ”๊ฐ€ ํ•ด์„ค : Animal ํƒ€์ž…์˜ ๊ฐ์ฒด๋Š” hello ๋ฉ”์†Œ๋“œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
		System.out.println(b_09.hello()); // 3๋ฒˆ pass
		System.out.println(b_09.bark()); // 4๋ฒˆ pass
		System.out.println(c_09.hello()); // 5๋ฒˆ error
		// ์›์ธ : ์ถ”์ƒํด๋ž˜์Šค์ธ Animal์€ ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค๋กœ ๋ถˆ๋Ÿฌ์˜จ ๊ฐ์ฒด์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋‹ค?
		// ์ถ”๊ฐ€ ํ•ด์„ค : c ๊ฐ์ฒด๊ฐ€ Predator ํƒ€์ž…์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ, Predator ํƒ€์ž…์˜ ๊ฐ์ฒด๋Š” bark ๋ฉ”์†Œ๋“œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
		System.out.println(c_09.bark()); // 6๋ฒˆ pass

	}

}

 

 


 

 

์—ฐ์Šต ๋ฌธ์ œ๊ฐ€ 1~9๋ฌธ์ œ๊นŒ์ง€ ์žˆ๋Š”๋ฐ ํ•˜๋‚˜์˜ java ํŒŒ์ผ๋กœ ํ’€๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ๋’ค๋Šฆ๊ฒŒ ๋ดค์„ ๋• ์†์„ ๋Œˆ ์ˆ˜ ์—†์—ˆ๋‹ค..

๋„ˆ๊ทธ๋Ÿฌ์šด ๋งˆ์Œ์œผ๋กœ ๋ด์ฃผ๊ธธ ๋ฐ”๋ž€๋‹ค.

(์•„๋ฌด๋„ ์•ˆ๋ณด๋Š”๊ฑฐ ์•ˆ๋‹ค)

 

์˜ค๊ณต์™„!

'๐Ÿ’ป ๊ณต๋ถ€ ๊ธฐ๋ก > โ˜• Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Java | Comparator  (0) 2023.01.09
Java | equals  (0) 2023.01.09
Java | ์ถ”์ƒ ํด๋ž˜์Šค(Abstract Class)  (0) 2023.01.06
Java | ๋‹คํ˜•์„ฑ(Polymorphism)  (0) 2023.01.06
Java | ์ธํ„ฐํŽ˜์ด์Šค(Interface)  (0) 2023.01.06
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.