めけゃくけゃ ι–‹η™Ίθ€…πŸ¦Ύ
μ½”λ”© 짐 πŸ’ͺ
めけゃくけゃ ι–‹η™Ίθ€…πŸ¦Ύ
  • μΉ΄ν…Œκ³ λ¦¬ (135)
    • 개발 ν™˜κ²½ ꡬ좕 (12)
      • 개발 ν™˜κ²½ (5)
      • DB (0)
      • Node.js (4)
      • ν˜•μƒ 관리 (2)
      • Spring (1)
    • μ›Ή (11)
      • React (5)
      • 슀파λ₯΄νƒ€μ½”λ”©ν΄λŸ½__μ›Ή (6)
    • λͺ¨λ°”일 (2)
      • μ•ˆλ“œλ‘œμ΄λ“œ (2)
    • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ (55)
      • C (13)
      • Python (15)
      • SQL (5)
      • Java (22)
    • 사물인터넷 (11)
      • 아두이노 (11)
    • 일상 (31)
      • λ§›μ§‘ (13)
      • λž­ν‚Ήλ‹­μ»΄ (4)
      • ν›„κΈ° (11)
      • μš”λ¦¬ (3)
      • μž‘λ‹΄ (0)
    • ꡐ양 (4)
      • 심리학 (3)
      • ν…Œλ‹ˆμŠ€ (1)
    • 자격증 (9)
      • μ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ (9)

λΈ”λ‘œκ·Έ 메뉴

  • πŸ’» github

인기 κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
めけゃくけゃ ι–‹η™Ίθ€…πŸ¦Ύ

μ½”λ”© 짐 πŸ’ͺ

[Java] μžλ°” 상속
ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/Java

[Java] μžλ°” 상속

2023. 1. 25. 10:09

[ μžλ°” 상속 ]

더보기

[ 상속(Inheritance) ]

- κΈ°μ‘΄ ν΄λž˜μŠ€μ— κΈ°λŠ₯을 μΆ”κ°€, μž¬μ •μ˜ν•˜μ—¬ μƒˆλ‘œμš΄ 클래슀λ₯Ό μ •μ˜ν•˜λŠ” 것

- 상속은 μΊ‘μŠν™”, 좔상화와 λ”λΆˆμ–΄ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ νŠΉμ„± 쀑 κ°€μž₯ μ€‘μš”ν•œ κ°œλ…μž„

- 상속을 μ΄μš©ν•˜λ©΄ 기쑴에 μ •μ˜λ˜μ–΄ μžˆλŠ” 클래슀의 λͺ¨λ“  ν•„λ“œμ™€ λ©”μ†Œλ“œλ₯Ό 상속받아

  μƒˆλ‘œμš΄ 클래슀 μ‚¬μš©/생성 κ°€λŠ₯

 

[ μƒμ†μ˜ μž₯점 ]

β‘  기쑴에 μž‘μ„±λœ 클래슀 μž¬μ‚¬μš© κ°€λŠ₯

β‘‘ 클래슀 κ°„μ˜ 계측적 λΆ„λ₯˜ 및 관리λ₯Ό 톡해 μœ μ§€λ³΄μˆ˜μ— 용이

 

 

[ 클래슀의 계측 ꡬ쑰 ]

더보기

[ μƒμ†μœΌλ‘œ μΈν•œ 클래슀의 계측 ꡬ쑰 ]

- 상속을 받을 λ•Œ μ‚¬μš©ν•  ν΄λž˜μŠ€λŠ” μ•„λž˜μ™€ 같이 뢀름

  · μƒμœ„ 클래슀 (super class)

  · λΆ€λͺ¨ 클래슀 (parent class)

  · 기초 클래슀 (base class)

 

- 상속을 톡해 μƒˆλ‘­κ²Œ μƒμ„±λ˜λŠ” ν΄λž˜μŠ€λŠ” μ•„λž˜μ™€ 같이 뢀름

   · ν•˜μœ„ 클래슀 (sub class)

   · μžμ‹ 클래슀 (child class)

   · νŒŒμƒ 클래슀 (derived class)

 

- μžλ°”μ˜ μ΅œμƒμœ„ 슈퍼 ν΄λž˜μŠ€λŠ” java.lang.Object,

  λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•˜μ§€ μ•Šμ„ μ‹œ λͺ¨λ“  ν΄λž˜μŠ€λŠ” Object의 μ„œλΈŒ ν΄λž˜μŠ€μž„.

- λ”°λΌμ„œ μžλ°”μ—μ„œ λ§Œλ“œλŠ” λͺ¨λ“  κ°μ²΄λŠ” Object μžλ£Œν˜•μœΌλ‘œλ„ μ‚¬μš© κ°€λŠ₯.

- μžλ°”μ˜ λͺ¨λ“  ν΄λž˜μŠ€λŠ” ν•˜λ‚˜ μ΄μƒμ˜ ν•˜μœ„ 클래슀λ₯Ό κ°€μ§ˆ 수 μžˆμœΌλ‚˜,

  μƒμœ„ ν΄λž˜μŠ€λŠ” ν•˜λ‚˜λ§Œμ„ κ°€μ§ˆ 수 있음.(final ν΄λž˜μŠ€λŠ” ν•˜μœ„ 클래슀 보유 λΆˆκ°€)

- 쀑볡 상속은 λΆˆκ°€λŠ₯(μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ΄μš©ν•œ 쀑볡 κ΅¬ν˜„ κ°€λŠ₯)

 

μƒμœ„ ν΄λž˜μŠ€λŠ” ν•˜λ‚˜λ§Œμ„ κ°€μ§ˆ 수 μžˆλ‹€

 

 

[ 클래슀 상속 μ„ μ–Έ ]

더보기

- 클래슀 상속을 μœ„ν•΄μ„œλŠ” extends ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©

- 단일 μƒμ†λ§Œμ„ 지원

[ public / final / abstract ] calss class_name extends super_class_name {
	... // 멀버 편수 μ„ μ–Έ
    ... // μƒμ„±μž μ„ μ–Έ
    ... // λ©”μ†Œλ“œ μ„ μ–Έ
}

 

[ 클래슀 상속 μ˜ˆμ‹œ ]

// Mammalia의 λΆ€λͺ¨ 클래슀인 Animal 클래슀
class Animal{
	private String ani_a = "rabbit"; // private 멀버 ν•„λ“œ
	public String ani_b = "lion";	 // public 멀버 ν•„λ“œ
	// Object 클래슀λ₯Ό λ¬΅μ‹œμ μœΌλ‘œ 상속받기에 Object μžλ£Œν˜• μ„ μ–Έ κ°€λŠ₯
	public Object ani_c = "dog"; 

	// -- Getter & Setter Method --
	// String μžλ£Œν˜•μ„ λ§€κ°œλ³€μˆ˜λ‘œ 전달받아 ani_a의 값을 λ³€κ²½ν•˜λŠ” λ©”μ†Œλ“œ
	public void setAni_a(String ani_a) {
		this.ani_a = ani_a;
	}
	// private으둜 μ„ μ–Έλœ ani_a의 값을 κ°€μ Έμ˜€λŠ” λ©”μ†Œλ“œ
	public String getAni_a() {
		return this.ani_a;
	}
	
	// String μžλ£Œν˜•μ„ λ§€κ°œλ³€μˆ˜λ‘œ 전달받아 ani_b의 값을 λ³€κ²½ν•˜λŠ” λ©”μ†Œλ“œ
	public void setAni_b(String ani_b) {
		this.ani_b = ani_b;
	}
}

// Animal 클래슀의 μžμ‹ 클래슀인 Mammalia 클래슀
class Mammalia extends Animal{
	void printAnimal() {
		this.setAni_a("tiger");
		System.out.println("ani_b = " + this.ani_b);
		this.setAni_b("panda");
	}
}

public class TestCode {
	
	public static void main(String[] args) {
		
		Mammalia mm = new Mammalia();
		/* < IS-A 관계 μ˜ˆμ‹œ >
		 * 상속관계에 μžˆμ„ 경우 μžμ‹ 클래슀의 κ°μ²΄λŠ” λΆ€λͺ¨ 클래슀의 μžλ£Œν˜•μΈκ²ƒμ²˜λŸΌ μ„ μ–Έ κ°€λŠ₯ 
		 * λ‹€λ§Œ 이 경우 Mammalia 클래슀의 printAnimal() λ©”μ†Œλ“œ μ‚¬μš©μ΄ λΆˆκ°€ν•¨
		 * ( Mammalia ⊂ Animal )
		   Animal mm2 = new Mammalia(); -- 상속 관계에 따라 μ„ μ–Έ κ°€λŠ₯
		 * λΆ€λͺ¨ 클래슀의 객체λ₯Ό μžμ‹ 클래슀의 μžλ£Œν˜•μœΌλ‘œλŠ” μ„ μ–Έ λΆˆκ°€
		 * ( Animal ⊃ Mammalia )
		   Mammalia mm3 = new Animal(); -- 상속 관계에 따라 μ„ μ–Έ λΆˆκ°€
		 */
		
		System.out.println("ani_a = " + mm.getAni_a());
		mm.printAnimal();
//		mm2.printAnimal(); -- 였λ₯˜ λ°œμƒ
		System.out.println("==============");
		System.out.println("ani_a = " + mm.getAni_a());
		System.out.println("ani_b = " + mm.ani_b);
	}
}

/* [좜λ ₯ κ²°κ³Ό]
    ani_a = rabbit
    ani_b = lion
    ==============
    ani_a = tiger
    ani_b = panda */
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)
    'ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [Java] μžλ°” 좔상 λ©”μ†Œλ“œ, 좔상 ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€
    • [Java] μžλ°” this, this()와 super, super()
    • [Java] 클래슀 λ©”μ†Œλ“œμ™€ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œ
    • [Java] μžλ°” μƒμ„±μž(λ©”μ†Œλ“œ)와 static ν‚€μ›Œλ“œ
    めけゃくけゃ ι–‹η™Ίθ€…πŸ¦Ύ
    めけゃくけゃ ι–‹η™Ίθ€…πŸ¦Ύ
    πŸ‘Š λΈ”λ‘œκ·Έλ„ 근성이닀? πŸ‘Š

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”