πŸ“† Today I Learned(κ°œλ°œμ–Έμ–΄ν•™μŠ΅)/JAVA

[JAVA] λ©”μ†Œλ“œ μž¬μ •μ˜ (λ©”μ†Œλ“œ μ˜€λ²„λΌμ΄λ”©)

λ©”μ†Œλ“œ μ˜€λ²„λΌμ΄λ”©(Overriding)

  • μƒμ†λœ λ©”μ†Œλ“œλ₯Ό μžμ‹ ν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜ν•˜λŠ” 것이닀.
  • λ©”μ†Œλ“œ μ˜€λ²„λ¦¬μ΄λ”© μ‹œ ν•΄λ‹Ή λΆ€λͺ¨ λ©”μ†Œλ“œλŠ” μˆ¨κ²¨μ§€κ³ , μžμ‹ λ©”μ†Œλ“œκ°€ μš°μ„ μ μœΌλ‘œ μ‚¬μš©λœλ‹€.
  • λΆ€λͺ¨ λ©”μ†Œλ“œμ˜ μ„ μ–ΈλΆ€(리턴 νƒ€μž…, λ©”μ†Œλ“œ 이름, λ§€κ°œλ³€μˆ˜)와 동일해야 ν•œλ‹€.
  • μ ‘κ·Ό μ œν•œμ„ 더 κ°•ν•˜κ²Œ μ˜€λ²„λΌμ΄λ”©ν•  수 μ—†λ‹€.(public → private으둜 λ³€κ²½ λΆˆκ°€)
  • μƒˆλ‘œμš΄ μ˜ˆμ™Έλ₯Ό throwsν•  수 μ—†λ‹€.

λΆ€λͺ¨ λ©”μ†Œλ“œ 호좜

λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ν•˜λ©΄, λΆ€λͺ¨ λ©”μ†Œλ“œλŠ” μˆ¨κ²¨μ§€κ³  μžμ‹ λ©”μ†Œλ“œλ§Œ μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ— μ˜€λ²„λΌμ΄λ”©λœ λ©”μ†Œλ“œμ—μ„œ μ€‘λ³΅λœ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ²Œ 될 수 μžˆλŠ”λ°

 

이 λ¬Έμ œλŠ” μžμ‹ λ©”μ†Œλ“œμ—μ„œ λ©”μ†Œλ“œ μ˜€λ²„λΌμ΄λ”©ν•  λ•Œ ν•΄λ‹Ή λ©”μ†Œλ“œμ— λΆ€λͺ¨μ˜ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄λœλ‹€.

( superν‚€μ›Œλ“œμ™€ λ„νŠΈ(.)μ—°μ‚°μž μ‚¬μš© )

 

public class Airplane {
	//λ©”μ†Œλ“œ μ„ μ–Έ
	public void land() {
		System.out.println("μ°©λ₯™ν•©λ‹ˆλ‹€.");
}

	public void fly() {
		System.out.println("일반 λΉ„ν–‰ν•©λ‹ˆλ‹€.");
	}

	public void takeOff() {
		System.out.println("이λ₯™ν•©λ‹ˆλ‹€.");
	}
}

public class SupersonicAirplane extends Airplane {
	//μƒμˆ˜ μ„ μ–Έ
	public static final int NORMAL = 1;
	public static final int SUPERSONIC = 2;
	//μƒνƒœ ν•„λ“œ μ„ μ–Έ
	public int flyMode = NORMAL;

	//λ©”μ†Œλ“œ μž¬μ •μ˜
	@Override
	public void fly() {
		if(flyMode == SUPERSONIC) {
			System.out.println("μ΄ˆμŒμ† λΉ„ν–‰ν•©λ‹ˆλ‹€.");
		} else {
			//Airplane 객체의 fly() λ©”μ†Œλ“œ 호좜
			super.fly();
		}
	}
}

public class SupersonicAirplaneExample {
	public static void main(String[] args) {
		SupersonicAirplane sa = new SupersonicAirplane();
		sa.takeOff();
		sa.fly();
		sa.flyMode = SupersonicAirplane.SUPERSONIC;
		sa.fly();
		sa.flyMode = SupersonicAirplane.NORMAL;
		sa.fly();
		sa.land();
	}
}

 

κ²°κ³Ό

더보기

이λ₯™ν•©λ‹ˆλ‹€.

일반 λΉ„ν–‰ν•©λ‹ˆλ‹€.

μ΄ˆμŒμ† λΉ„ν–‰ν•©λ‹ˆλ‹€.

일반 λΉ„ν–‰ν•©λ‹ˆλ‹€.

μ°©λ₯™ν•©λ‹ˆλ‹€.

 

 

 

 

 

 

 

좜처:이것이 μžλ°”λ‹€(ꡐ윑 ν˜„μž₯μ—μ„œ κ°€μž₯ 많이 μ“°μ΄λŠ” JAVA ν”„λ‘œκ·Έλž˜λ°μ˜ κΈ°λ³Έμ„œ)
https://search.shopping.naver.com/book/catalog/34238594620?cat_id=50010920&frm=PBOKMOD&query=%EC%9D%B4%EA%B2%83%EC%9D%B4%EC%9E%90%EB%B0%94%EB%8B%A4&NaPm=ct%3Dlocm18y8%7Cci%3D0e64b25f86693278b2d96906cbe4b981fe74c6d5%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3D95e00da716b01b77d749d200eae34c788eb63950