Java 7일차 다형성
클래스 형변환 ( Animal , Rabbit , Tiger ) = 여러 타입의 클래스를 하나의 클래스로 관리가 가능하다
동적 바인딩 = 컴파일 당시에는 해당 타입의 메소드와 연결 되어 있다가 런타임 시에는 실제 객체가 가진 오버라이딩 된 메소드로 바인딩이 바뀌어 동작하는것을 의미한다
( 점심 먹고 졸다가 주석이 휴먼졸림체로 적혀버렸습니다 )
추상클래스와 인터페이스
추상클래스 = 구현부가 없는 클래스
추상클래스를 인스턴스로 만들 수 없음
추상클래스를 사용하려면 다형성을 이용하여 추상클래스를 상속받은 하위클래스를 이용하여 인스턴스 생성.
추상클래스의 추상메소드는 오버라이딩에 의한 강제성이 부여됨.
장점 : 필수 기능을 정의하여 강제성을 부여해 개발 시 일관된 인터페이스를 제공함
abstract class : 추상 클래스
abstract void abstractMethod() : 추상 메소드
extends Product : 추상 클래스(Product) 를 상속 받음
@Override public void abstractMethod() : 구현을 해도되고 안해도 됨.
구현 안함 = 다음 상속 받을 놈 한테 책임 전가
인터페이스 = 모든 메소드가 추상메소드인 클래스
인터페이스를 상속받는 클래스는
인터페이스에 정의된 추상 메소드를 반드시 반드시 절대로 절대로 구현 해야하는 책임이 있다.
API ( Application Programming Interface )
Book 클래스 Object 함수인 toString, equals , hashcode 오버라이딩(재정의)