오버라이딩 vs 오버로딩 비교 & 정리

 

 

 

오버라이딩오버로딩의 차이에 대해 알아보자!

 

 

 

오버로딩(Overloading)

메소드 이름은 같지만 매개변수의 자료형이나 개수가 다른 경우를 오버로딩이라고 한다.

오버로딩에는 크게 두 가지로 생성자 오버로딩과 메소드 오버로딩으로 나눌 수 있다.

 

 

두 방법에는 크게 다른 점은 없지만 활용하는 방법 위주로 알아두면 된다.

 

 

 

 

메소드 오버로딩

public void graduate(int a){
	System.out.println(a);
}
public void graduate(int a,char b){
	System.out.println(a +","+ b);
}
public void graduate(String c){
	System.out.println(c);
}

 

 

생성자 오버로딩

public class Person{
	String name;
    int num;
    public Person(){}
    public Person(String name)
    {
    	this.name = name;
    }
    public Person(String name,int num)
    {
    	this.name = name;
        this.num =num;
    }
}
public class Example
{
	public static void main(String args[]){
    	// Person 객체 생성
    	Person person = new Person("SeungWon"); //name = SeungWon 
    	Person person = new Person("SeungWon",97); //name = SeungWon, num = 97
    }
}

 

  

 

 


 

 

오버라이딩(Overriding)

 

상위 클래스에 있는 메소드를 하위 클래스에서 재정의하는 과정을 오버라이딩이라고 한다.

 

  • 상속관계가 있는 자식 클래스에서 부모 클래스에게 메소드를 가져와 새롭게 사용한다는 의미이다.
class Animal{
public void cry(){
	System.out.println("ummm");
}  
}
class Dog{
public void cry(){
	System.out.println("bark");
}  
}
class Cat{
public void cry(){
	System.out.println("meow");
}  
}

+ Recent posts