JAVA

JAVA (메서드)오버라이딩

짱코딩러 2022. 7. 18. 20:50

조상의 메서드를 자신에게 맞게 바꾸는것.(구현부{}만 변경할 수 있음.)

1.선언부가 조상 클래스의 메서드와 일치해야 한다. ==> 반환타입 메서드이름 (매개변수 목록) {}

2.접근 제어자를 조상클래스의 메서드보다 좁은 범위로 변경할 수 없다.(같거나 넓어야함.)

3.예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.(같거나 적어야함.)

 

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

class MyPoint3D extends MyPoint3{
	int z;
	
	//조상의 getLocation()을 오버라이딩
	String getLocation() {
		return "x:"+x+", y:"+y+", z:"+z;
		}
}

public class OverrideTest {
	public static void main(String[] args) {
		MyPoint3D p = new MyPoint3D();
		p.x = 3;
		p.y = 5;
		p.z = 7;
	}

}

 

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

	//Object클래스의 toString()을 오버라이딩
	public String toString() {
		return "x:"+x+", y:"+y;
	}
}

public class OverrideTest {
	public static void main(String[] args) {
		MyPoint3 p = new MyPoint3(1,2);
		System.out.println(p);
		
	}

}

 

****둘이 관련 X*******

+오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것.(이름만 같은)

'JAVA' 카테고리의 다른 글

JAVA 인터페이스  (0) 2022.07.19
JAVA instanceof 연산자  (0) 2022.07.18
JAVA 인자전달  (0) 2022.07.17
JAVA 제어자  (0) 2022.07.17
JAVA 변수 초기화  (0) 2022.07.17