3초기억력

오버라이딩 : 부모클래스 재정의 본문

자바_기초

오버라이딩 : 부모클래스 재정의

잠수콩 2019. 5. 27. 14:38
// 오버라이드 : ~위에 덮어쓰다. ~ 우선되다.
// - 오버라이딩
//		- 부모클래스로부터 상속받은 메서드의 내용을 자식클래스에 맞게 변경하는 것(재정의)

// 오버라이딩 조건
//	- 선언부(메스드명, 매개변수, 리턴타입) 동일
//	- 접금제어자를 좁은 범위로 변경할 수 없다.

// 오버로딩 : 기존에 없는 메서드를 정의


//2차원 포인트
//3차원 포인트

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

class Point3D extends Point{
	int z;
	
	String getLocation(String i1) {				//오버로딩
		return i1;
	}
	
	int getLocation(int i, int j) {				//오버로딩
		return i + j;
	}
	
	void getLocation(String a, String b) {		//오버로딩
		System.out.println("a = " + a + ", b = " + b);
	}

	@Override
	String getLocation() {						//오버라이딩 : 부모클래스의 메서드를 변경한다.
		return "x>" + x + ", y>"+ y + ", z>"+ z;
	}
	
	
}

public class OverridingEx1 {

	public static void main(String[] args) {


		Point3D p1 = new Point3D();
		System.out.println(p1.getLocation());

		System.out.println(p1.getLocation(1,2));			//int getLocation(int i, int j)
		p1.getLocation("1111111111","22222222");			//void getLocation(String i, String j)

		String p2 = p1.getLocation("1111111111");			//String getLocation(String i1)
		System.out.println("p2="+p2);

	}

}
Comments