본문 바로가기
수업(국비지원)/Java

[Java] chap7 : 클래스의 관계 - 오버로딩, 오버라이딩

by byeolsub 2023. 4. 15.
  • 오버라이딩
  오버라이딩 예제
  
  오버라이딩 : 메서드의 재정의
  1. 상속 관계에서 부모의 메서드를 자손클래스에서 재정의 함
  2. 부모클래스 메서드의 선언부와 자손클래스의 메서드의 선언부가 같아야 함.
  3. 접근제어자는 넓은 범위로 가능
  4. 예외처리는 좁은 범위로 가능 
  • 오버로딩
  오버로딩 : 메서드의 다형성
  1. 동일한 같은 클래스내에 같은 이름을 가진 메서드가 존재 할 수 있다. 단 매개변수가 달라야 함
  2. 리턴타입, 접근제어자, 예외처리 등은 상관 없다.

 

📌

package chap7;

class Bike {
	int wheel;

	Bike(int wheel) {
		this.wheel = wheel;
	}

    String drive() {
		return "페달을 밟는다.";
	}

	String stop() {
		return "브레이크를 잡는다.";
	}
}
class AutoBike extends Bike{
	boolean power;
	AutoBike(int wheel){
		super(wheel); //부모클래스의 생성자에 맞도록 호출
	}
	void power() {
		power = !power;
	}
//부모클래스의 메서드의 선언부와 자손클래스 메서드의 선언부가 같아야 한다.
//리턴타입 메서드명(매개변수 목록)
	/*
	 * 어노테이션 : 알고리즘과 관계없이 검증, 실행을 위한 보조 도구
	 */
	@Override //어노테이션 <- 오버라이딩이 정확하게 코딩됐는지 여부검증을 위한 
	String drive() { //오버라이딩 메서드. 메서드의 재정의
		return "출발버튼을 누른다.";
	}
}

public class OverridinfEx1 {
	public static void main(String[] args) {
		AutoBike ab = new AutoBike(2);
		System.out.println(ab.drive());
		System.out.println(ab.stop());
		Bike b = new Bike(2);
		System.out.println(b.drive());
		System.out.println(b.stop());
	}
}