yeony._.
πŸ’μ½©λΆ€πŸ’
yeony._.
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기 (99)
    • πŸ’»Programming (91)
      • β˜•οΈJava (19)
      • πŸ’½Oracle (21)
      • πŸ‘©‍🎨HTML&CSS (12)
      • 🎨 μ‹€μŠ΅ (4)
      • πŸƒ‍♀️JavaScript (25)
      • JSP (8)
      • πŸƒSpring (0)
      • πŸ₯§python (0)
      • API (0)
      • 😈Git (1)
    • 🀫Private (0)
      • -- (0)
      • + (0)
      • S (0)
      • P (0)
      • B (0)
    • 😎Project (4)
      • πŸ—“οΈwbs ν”„λ‘œμ νŠΈ (3)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • HTML #CSS #HTML이미지 #HTML이미지에글씨 #HTML이미지에이미지

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
yeony._.

πŸ’μ½©λΆ€πŸ’

[JAVA] 객체지ν–₯_상속
πŸ’»Programming/β˜•οΈJava

[JAVA] 객체지ν–₯_상속

2022. 7. 25. 18:51

01.  상속(Inheritance)의 κ°œλ… 

  기쑴에 μ •μ˜λœ ν΄λž˜μŠ€μ— λ©”μ†Œλ“œμ™€ ν•„λ“œλ₯Ό μΆ”κ°€ν•˜μ—¬ μƒˆλ‘œμš΄ 클래슀λ₯Ό λ§Œλ“œλŠ” 것 
  μƒμ†μ„ 톡해 μ—°κ΄€λœ ν΄λž˜μŠ€μ— λŒ€ν•œ 곡톡적인 κ·œμ•½μ„ μ •μ˜ν•˜κ³  μ μš©ν•˜λŠ” 것이 μ‹€μ§ˆμ μΈ λͺ©μ 

μ‹€λ¬΄μ—μ„œλŠ” λ‚΄κ°€ λ§Œλ“  클래슀λ₯Ό μƒμ†ν•˜λŠ” μΌλ³΄λ‹€λŠ”, 이미 λ§Œλ“€μ–΄μ„œ μ œκ³΅ν•΄μ€€ 것듀을 μƒμ†ν•΄μ„œ μ²˜λ¦¬ν•˜λŠ” 일이 λΉˆλ²ˆν•˜λ‹€κ³  ν•œλ‹€.

기본적으둜 μžλ°” ν”Œλž«νΌμ˜ λͺ¨λ“  ν΄λž˜μŠ€λŠ” Object 클래슀λ₯Ό μƒμ†λ°›λŠ”λ‹€.

 

02.  슈퍼 ν΄λž˜μŠ€μ™€ μ„œλΈŒ 클래슀 

1. 슈퍼 ν΄λž˜μŠ€μ™€ μ„œλΈŒ 클래슀 μš©μ–΄ 정리 ✏️

- 슈퍼 클래슀(Super class)
  상속을 ν•΄μ£ΌλŠ” λΆ€λͺ¨ 클래슀
  기반 클래슀(Base class)라고도 함


  - μ„œλΈŒ 클래슀(Sub class)
  상속을 λ°›λŠ” μžμ‹ 클래슀
  νŒŒμƒ 클래슀(Derived class)라고도 함 

 

2. 상속 μ˜ˆμ‹œ 

상속 UML

ex) μ‚¬λžŒ ν΄λž˜μŠ€μ™€ 학생 클래슀, ꡐ사 클래슀

  • μ‚¬λžŒ  : 눈, μ½”, μž…
  • 학생 : 눈, μ½”, μž…, 곡뢀λ₯Ό ν•œλ‹€.
  • ꡐ사 : 눈, μ½”, μž…, μˆ˜μ—…μ„ ν•œλ‹€.

학생과 ꡐ사가 κ³΅ν†΅μ μœΌλ‘œ κ°€μ§€κ³  μžˆλŠ” 눈, μ½”, μž…μ„ μ‚¬λžŒμ΄λΌλŠ” 슈퍼(μƒμœ„) 클래슀λ₯Ό 톡해 κ°„λ‹¨νžˆ κ΅¬ν˜„ν•  수 μžˆλ‹€.

'곡뢀λ₯Ό ν•œλ‹€' λ‚˜ 'μˆ˜μ—…μ„ ν•œλ‹€' 같은 κ°œλ³„ κΈ°λŠ₯은 μžμ‹ μ˜ ν΄λž˜μŠ€μ— κ΅¬ν˜„ν•˜λŠ” 것이라고 ν•  수 μžˆλ‹€. 

νšŒμ‚¬μ› 클래슀λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€λ©΄,  μ‚¬λžŒ 클래슀λ₯Ό 상속받고, νšŒμ‚¬μ› ν΄λž˜μŠ€μ—μ„œ 'νšŒμ‚¬ 업무λ₯Ό ν•œλ‹€.'λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©΄ λ˜λŠ” 것! 😎

➑ 상속을 μ‚¬μš©ν•˜λ©΄ κΈ°μ‘΄ 클래슀의 λ³€μˆ˜μ™€ μ½”λ“œλ₯Ό μž¬μ‚¬μš©ν•  수 μžˆμ–΄ 개발 μ‹œκ°„μ„ 단좕할 수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€. 

 

3. μƒμ†μ˜ 관계

Is - a 관계 

A ν΄λž˜μŠ€κ°€ B 클래슀λ₯Ό 상속받은 경우 AλŠ” B에 ν¬ν•¨λ˜κΈ° λ•Œλ¬Έμ— AλŠ” B이닀 라고 ν‘œν˜„  κ°€λŠ₯ 

ν•˜μœ„ ν΄λž˜μŠ€λŠ” μƒμœ„ ν΄λž˜μŠ€μ΄λ‹€.  ex) 학생은 μ‚¬λžŒμ΄λ‹€.

 

Has - a 관계 

ν•˜λ‚˜μ˜ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀의 멀버λ₯Ό κ°€μ§€κ³  μ΄μš©ν•˜λŠ” ꡬ쑰 

 

03 ν•˜μœ„ 클래슀 

1. ν•˜μœ„ 클래슀 νŠΉμ§• 

β‘  μžλ°”λŠ” 닀쀑 상속을 지원X

2개 μ΄μƒμ˜ 클래슀λ₯Ό λ™μ‹œμ— 상속X. ( 아버지가 λ‘˜ 일 μˆ˜λŠ” μ—†λ‹€κ³  κΈ°μ–΅ )

β‘‘ μƒμœ„ 클래슀(Super class) κ°€ κ°€μ§€κ³  μžˆλŠ” λ©”μ†Œλ“œμ™€ ν•„λ“œ 상속 

β‘’ μƒμœ„ 클래슀의 μƒμ„±μž 및 μ΄ˆκΈ°ν™” 블둝은 상속X

β‘£ μƒμœ„ ν΄λž˜μŠ€κ°€ κ°€μ§€κ³  μžˆλŠ” λ©”μ†Œλ“œμ™€ ν•„λ“œλ₯Ό 상속 받을 λ•Œ, λΆ€λͺ¨ ν΄λž˜μŠ€μ— private둜 μ„ μ–Έλœ 것은 μžμ‹λ„ μ ‘κ·ΌX

+ ν˜•μ œ κ΄€κ³„λŠ” μ—†μŒ! ν˜•μ œ κ΄€κ³„λŠ” 남이닀  

 

 

2. ν•˜μœ„ 클래슀 μž‘μ„±

[μ ‘κ·Όμ œμ–΄μž][κΈ°νƒ€μ œμ–΄μž] class ν•˜μœ„ν΄λž˜μŠ€μ΄λ¦„ extends μƒμœ„ν΄λž˜μŠ€μ΄λ¦„
}
[implements μΈν„°νŽ˜μ΄μŠ€λͺ… [, μΈν„°νŽ˜μ΄μŠ€λͺ…]] { // 클래슀 μ •μ˜ λΆ€λΆ„(ν•„λ“œμ™€ λ©”μ†Œλ“œ μ •μ˜)

 

 

04 상속 μ½”λ“œ μ˜ˆμ‹œ

슈퍼 클래슀

class Demo1 {
	private int a = 10; // private λŠ” ν•˜μœ„ ν΄λž˜μŠ€λ„ μ ‘κ·Ό λΆˆκ°€
	int b = 20; // λ™μΌν•œ νŒ¨ν‚€μ§€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯
	protected int c = 30; // λ™μΌν•œ νŒ¨ν‚€μ§€ 및 ν•˜μœ„ν΄λž˜μŠ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯
	public int d = 40; // μ–΄λ””μ—μ„œλ‚˜ μ ‘κ·Ό κ°€λŠ₯

	public void print() {
		System.out.println();
	}

}

 

μ„œλΈŒ 클래슀 

class Test1 extends Demo1 {
	int x = 100;

	public void disp() {

		// System.out.println(a); //컴파일 였λ₯˜
		System.out.println("μƒμœ„ ν΄λž˜μŠ€μ—μ„œ λ¬Όλ € 받은 ν•„λ“œ b :" + b + " c :" + c);
		System.out.println( "x :" + x);

	}

	public void write() {
		print(); // μƒμœ„ 클래슀 λ©”μ†Œλ“œ 호좜
	}

}

 

 

'πŸ’»Programming > β˜•οΈJava' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] DAO와 VO μ •μ˜μ™€ μ‚¬μš©λ²•  (0) 2022.07.31
[JAVA] μ—΄κ±°ν˜• νƒ€μž…  (0) 2022.07.27
[JAVA] 객체지ν–₯_μΈν„°νŽ˜μ΄μŠ€  (0) 2022.07.26
[JAVA]객체지ν–₯_좔상 클래슀  (0) 2022.07.26
[JAVA]객체지ν–₯_상속과 κ΄€λ ¨ν•œ μš©μ–΄(2)  (0) 2022.07.25
    'πŸ’»Programming/β˜•οΈJava' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [JAVA] μ—΄κ±°ν˜• νƒ€μž…
    • [JAVA] 객체지ν–₯_μΈν„°νŽ˜μ΄μŠ€
    • [JAVA]객체지ν–₯_좔상 클래슀
    • [JAVA]객체지ν–₯_상속과 κ΄€λ ¨ν•œ μš©μ–΄(2)
    yeony._.
    yeony._.
    힘 μ„Έμ§€λŠ” μ•Œμ•½πŸ’ŠπŸ’ŠπŸ’Š

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