오버로딩 -> 이름이 같은 메서드 여러 개
오버라이딩 -> 상속 받아서 기능 추가
자바는 기본적으로 모두 가상 메서드
명령어 set이 호출될 때는 항상 같은 곳을 가르킨다 -> 코드 영역
메서드 바인딩 -> 어느게 불리느냐
다형성
package inherient;
public class Animal {
public void move(){
System.out.println("동물은 움직입니다.");
}
}
class Human extends Animal{
public void move(){
System.out.println("사람은 두발로 걷습니다.");
}
}
class Tiger extends Animal{
public void move(){
System.out.println("호랑이가 네발로 뜁니다.");
}
}
class Eagle extends Animal{
public void move(){
System.out.println("독수리가 하늘");
}
}
class AnimalTest{
public static void main(String[] args){
AnimalTest test = new AnimalTest();
test.moveAnimal(new Human());
test.moveAnimal(new Tiger());
test.moveAnimal(new Eagle());
Animal animal = new Human();
// 36줄과 동일
}
public void moveAnimal(Animal animal){
animal.move();
}
}
하나의 클래스를 상속 받은 여러 클래스가 있는 경우
각 클래스 마다 같은 이름의 서로 다른 메서드를 재정의 함