[ 심화반 수업 ]
overloading
: 같은 이름의 메서드, 다른 매개변수
- 정적다형성 (compile-time polymorphism)을 지원한다
: 컴파일 시점에 어떤 메서드가 호출될지 결정됨
overriding
: 상위 클래스에서 정의된 메서드를 하위 클래스에서 재정의 하는 것
메서드 시그니처(매개변수, 리턴타입)를 동일하게 가져감 ⇒ 내부 구현만 다름
- 런타임다형성 (runtime polymorphism)
: 내부적으로 실행되는 시점에 어떤 메서드가 호출될 지 결정됨
- 확장성을 가짐
@Override (annotation)
: 컴파일러에 의해 (컴파일 시점에) 오버라이딩이 정확하게 되었는지 확인하는 것
- 오버라이딩 실수를 방지할 수 있음
- 다른 개발자가 코드를 읽기 쉬움
- 컴파일러를 통해 오류를 방지할 수 있음
다형성
: 객체의 속성, 기능이 상황에 따라 다른 역할을 하는 것
!! 부모 타입의 참조 변수를 통해 여러 자식 타입의 객체를 참조할 수 있다 !!
Animal myPet = new Dog();
- 하위클래스 타입으로 상위클래스 객체를 참조할 수는 없음
- 상위클래스로 하위클래스를 참조했다면, 하위 클래스의 메서드는 사용할 수 없음
- 다운캐스팅
: 상위클래스 → 하위클래스
- 하위 클래스 사용 가능 - 일시적 다운캐스팅
: 선언할 때가 아니라, 메서드를 사용할 때만 캐스팅 할 수 있음 (하위 메서드를 사용해야 할 때) - 명시적 다운캐스팅
- 실행되면 안되는 코드를 실행시키려고 했기 때문에, 문제가 생기면 개발자가 책임지겠다는 의미
'스파르타 내배캠' 카테고리의 다른 글
[TIL] #14. SQL (0) | 2024.05.09 |
---|---|
[TIL] #13. Class (0) | 2024.05.08 |
[TIL] #11. Exception, Naming Convention (0) | 2024.05.03 |
[TIL] #10. URL, HTTPS (0) | 2024.05.03 |
[TIL] #9. do-while, constructor, abstract (0) | 2024.05.01 |