Java/정석

오버라이딩

hs_developer 2022. 6. 1. 13:28

child 클래스를 필요에 의해 변경해야 하는 경우 parent 클래스를 오버라이딩한다.

 

 

class Point 
{
	int x;
	int y;
	
	String getLocation()
	{
		return "x: " + x + ", y: " + y;
	}
}

class Point3D extends Point
{
	int z;
	
	String getLocation() // 오버라이딩
	{
		return "x: " + x + ", y: " + y + ", z: " + z;
	}
}

 

 

 

조건

chlid 클래스에서 오버라이딩 하는 메서드는 조상 클래스의 메서드와

1. 이름이 같아야 한다.
2. 매개변수가 같아야 한다.
3. 반환타입이 같아야 한다.

 

 

오버로딩 vs 오버라이딩

 

오버로딩 기존에 없는 새로운 메서드를 추가 (NEW)
오버라이딩 조상으로부터 상속 받은 메서드의 내용을 변경 (CHANGE, MODIFY)

 

class Parent
{
	void parentMethod() {
		
	}
}

class Child extends Parent
{
	void parentMethod() { // 오버라이딩 : 내용 변경
		
	}
	
	void parentMethod(int i) { // 오버로딩 : 새 메서드 정의
		
	}
	
	void childMethod() {
		
	}
	
	void childMethod(int i) {
		
	}
	
	void childMethod() { // 에러, 중복 정의
		
	}
}