Java

Overloading, Overriding (Java)

pepega 2021. 10. 21. 16:49

- 오버로딩(overloading) : 기존에 없는 새로운 매서드를 정의하는 것

- 오버라이딩(overriding) : 상속받은 메서드의 내용을 변경하는 것

출처: https://all-record.tistory.com/60 [세상의 모든 기록]

 

오버라이딩(Overriding)

오버라이딩이란? 부모 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라 한다. 간단히 말하면 메서드를 다시 정의하는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public clas

all-record.tistory.com

오버로딩(overloading)

//Overloading.java

class Overloading
{
	void overloadinTest()
	{
		System.out.println("매개변수 아무것도 안넣음");
	}

	void overloadinTest(int a, int b)
	{
		System.out.println("정수 매개변수 : " + a + ", " + b);
	}

	void overloadinTest(double  a)
	{
		System.out.println("실수 매개변수 : " + a);
	}

	void overloadinTest(String a)
	{
		System.out.println("문자형 매개변수 : " + a);
	}
}
//OverLoadingJava.java

public class OverLoadingJava
{
	public static void main(String[] args)
	{
		Overloading overloading = new Overloading();

		overloading.overloadinTest(); //매개변수 아무것도 없음
		overloading.overloadinTest(10, 20);	//정수 매개변수 2개
		overloading.overloadinTest("Test");	//문자형 매개변수
		overloading.overloadinTest(50);		//실수형 매개변수
	}
}

java OverLoadingJava
매개변수 아무것도 안넣음
정수 매개변수 : 10, 20
문자형 매개변수 : Test
실수 매개변수 : 50.0

오버라이딩(overriding)

//Overriding.java

public abstract class Overriding
{
	public void myTest()
    {
        System.out.println("Overriding class");
    }
    
    public abstract String absFunc(); //추상 함수
}
//FirstChildClass.java

public class FirstChildClass extends Overriding
{
    private String iam = "I am FirstChildClass!";
    
    public void myTest() //오버라이딩
    {
        System.out.println("FirstChildClass class");
    }
    
    public String absFunc() //오버라이딩
    {
        return iam;
    }
}
//SecondChildClass.java

public class SecondChildClass extends Overriding
{
    private String im = "I am SecondChildClass";
    
    public void myTest() //오버라이딩
    {
        System.out.println("SecondChildClass class");
    }
    
    public String absFunc() //오버라이딩
    {
        return im;
    }
}
//OverridingJava.java

public class OverridingJava
{
    public static void main(String[] args)
    {
        Overriding[] overriding = new Overriding[2]; //자식 클래스 2개 입력
        
        FirstChildClass firstChildClass = new FirstChildClass();
        SecondChildClass secondChildClass = new SecondChildClass();
        
        overriding[0] = firstChildClass;
        overriding[1] = secondChildClass;
        
        for(Overriding over : overriding) //배열 출력
        {
            over.myTest();
            System.out.println(over.absFunc());
        }
    }
}

javac Overriding.java
javac FirstChildClass.java
javac SecondChildClass.java
javac OverridingJava.java
java OverridingJava

FirstChildClass class
I am FirstChildClass!
SecondChildClass class
I am SecondChildClass

 


출처
https://private.tistory.com/25

https://gmlwjd9405.github.io/2018/08/09/java-overloading-vs-overriding.html

 

[Java] 오버로딩과 오버라이딩의 차이(Overloading VS Overriding) - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

오버로딩과 오버라이딩 차이와 예제

자바에서 다형성을 지원하는 방법으로 메서드 오버로딩과 오버라이딩이 있습니다. 오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

private.tistory.com

 

 

 

'Java' 카테고리의 다른 글

java 클래스 구현, 상속, 자동차 예제  (0) 2021.10.21
java 상속 관계 구조 구현(학생 예제)  (0) 2021.10.21