오버로딩은 한 클래스 내에서 같은 이름으로 다른 메소드를 만듦
일부 코드로 예시를 보자
public class Ex {
public int add(int a,int b) {
return a + b;
}
public double add(double a, double b) { //파라미터 타입이 다름
return a + b;
}
}
오버라이딩은 상속 받은 클래스 내에서 입맛에 맞게 변경하는 것
public class Unit {
int hp = 0;
public void printUnit(int hp) {
System.out.println("기초 유닛입니다");
System.out.println("HP" + hp);
}
}
class Npc extends Unit { //상속 받고,
int hp = 100;
public void printNpc(int hp) { //파라미터 타입, 갯수 모두 일치
System.out.println("Npc 유닛입니다");
System.out.println("HP" + hp);
}
}
오버로딩과 오버라이딩 둘 다 다형성을 구현한다는 점은 공통점임
얘네는 모두 단순 값을 비교함
equals(): 같다, 다르다만 비교
compareTo(): 작다, 같다, 다르다
String str1 = new String("java");
String str2 = new String("java");
String str3 = "java";
String str4 = "java";
str1 == str2는 false
str3 == str4는 True