오버 로딩 : 기존의 메서드와 이름은 같지만 매개변수의 타입과 개수가 다른 메서드를 같은 이름으로 생성하는 것
오버 로딩의 장점 : 기능이 같은 메서드의 이름을 하나로 묶어 정의하여 편리함
예제)
package com.company;
public class Overloading {
void Animal(){ // 매개변수가 없는 메서드
System.out.println("동물입니다.");
}
void Animal(String name,String type){ // Sting 타입의 매개변수가 두개인 메서드
System.out.println("이름은 "+name+" 이고 "+" 종류는 "+type+" 인 동물입니다.");
}
void Animal(int age){ // int 타입의 매개변수가 한개인 메서드
System.out.println("나이가 "+age+"살 인 동물입니다.");
}
}
class OverLoadingTest{
public static void main(String[] args) {
Overloading overloading = new Overloading();
overloading.Animal(); //매개변수가 없는 메서드 호출
overloading.Animal("nabi","cat"); // String 타입의 매개변수가 두개인 메서드 호출
overloading.Animal(12); // int 타입의 매개변수가 한개인 메서드 호출
}
}
매개변수의 타입과 개수가 다른 여러 개의 메서드를 같은 이름으로 정의
매개변수에 맞는 메서드를 호출
결과)
오버 라이딩 : 부모 클래스에서 상속받은 메서드를 자식 클래스 내에서 재정의 하여 사용하는 것
오버 라이딩의 장점 : 메서드의 이름, 매개변수, 반환형이 같을 경우에 메서드를 생성하지 않고 같은 이름으로 내용만 변경하여 사용함을 통해 프로그램의 리소스를 줄여준다.
예제)
package com.company;
class AnimalName {
public String name;
public String type;
public void animal(){
System.out.println("동물의 이름은 "+name+"이고 종류는 "+type+"입니다.");
}
}
class AnimalAge extends AnimalName{
public int age;
public void animal(){ //부모 클래스의 animal 재정의
System.out.println("동물의 이름은 "+name+"이고 종류는 "+type+ "이고 나이는 "+age+"입니다.");
}
}
public class Overriding {
public static void main(String[] args) {
AnimalAge animalAge = new AnimalAge();
animalAge.name = "nabi";
animalAge.type = "cat";
animalAge.age = 5;
animalAge.animal();
}
}
결과)
'Java' 카테고리의 다른 글
Java) 인스턴스 멤버 정적 멤버 (0) | 2022.11.26 |
---|---|
Java) 문제 풀이 (0) | 2022.11.18 |
java] 클래스 - 메소드 (0) | 2022.04.18 |
Java] 클래스 - 생성자 (0) | 2022.04.14 |
Java] 클래스 - 필드 (0) | 2022.04.14 |