조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩

// 2차원 좌표계
class Point {
	int x;	
	int y;

	Point(int x, int y) {
		this.x = x;
		this.y = y;
	}

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

// Point를 상속받음
class Point3D extends Point {
	int z;

	Point3D(int x, int y, int z) { // 생성자는 반환이 없어서 void 생략
		this.x = x;
		this.y = y;
		this.z = z;
	}
  
  // Point 클래스의 메소드에서 반환값을 수정함
	String getLocation() {	// 오버라이딩
		return "x :" + x + ", y :"+ y + ", z :" + z;
	}

2.2 오버라이딩의 조건

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

달라도 되는 것

참고 static 메서드는 오버라이딩 할 수 없음

2.3 오버로딩 vs 오버라이딩

class Parent {
  void parentMethod() {
    ...
  }
}
class Child extends Parent {
  void parentMethod() {}      // 오버라이팅
  void parentMethod(int i) {} // 오버라딩 
}