본문 바로가기

자바 JAVA

오버라이딩 overriding 기초 예제

  오버라이딩 

오버라이딩은 상속받은 메소드를 확장하기 위해 사용한다.

오버라이딩 메소드는 부모 클래스 메소드와 메소드명, 리턴타입, 매개변수가 같아야한다.

메소드 호출시 오버라이딩 메소드가 부모 클래스 메소드보다 우선시된다.

 

package sample;

public class Sample
{
	public static void main(String[] args)
	{
		Point3D a = new Point3D();
		a.x = 10;
		a.y = 20;

		a.getPoint();
	}
}

class Point
{
	int x, y;

	void getPoint()
	{
		System.out.println("x : " + x + ", y : " + y);
	}
}

class Point3D extends Point
{
	int z;

	void getPoint()
	{
		System.out.println("x : " + x + ", y : " + y + ", z : " + z);
	}
}

 

출력결과

  super 

오버라이딩 이후 부모클래스에 있는 원본을 호출하는 경우 쓰임

 

package sample;

public class Sample2
{

	public static void main(String[] args)
	{
		Child a = new Child();
		
		a.printChild(50);
	}

}

class Parent
{
	int x = 10;
	
	String parentMethod()
	{
		return "parent";
	}
}

class Child extends Parent
{
	int x = 20;
	
	String childMethod()
	{
		return "child";
	}
	
	void printChild(int x)
	{
		System.out.println("x : " + x);
		System.out.println("this.x : " + this.x);
		System.out.println("super.x : " + super.x);
	}
}

 

출력결과