더존 노션 필기 옮기기/Java

Java 7일차 다형성

대엽 2022. 8. 30. 17:44

클래스 형변환 ( Animal , Rabbit , Tiger ) = 여러 타입의 클래스를 하나의 클래스로 관리가 가능하다

동적 바인딩 = 컴파일 당시에는 해당 타입의 메소드와 연결 되어 있다가 런타임 시에는 실제 객체가 가진 오버라이딩 된 메소드로 바인딩이 바뀌어 동작하는것을 의미한다

( 점심 먹고 졸다가 주석이 휴먼졸림체로 적혀버렸습니다 )

추상클래스와 인터페이스

추상클래스 = 구현부가 없는 클래스

추상클래스를 인스턴스로 만들 수 없음

추상클래스를 사용하려면 다형성을 이용하여 추상클래스를 상속받은 하위클래스를 이용하여 인스턴스 생성.

추상클래스의 추상메소드는 오버라이딩에 의한 강제성이 부여됨.

장점 : 필수 기능을 정의하여 강제성을 부여해 개발 시 일관된 인터페이스를 제공함

abstract class : 추상 클래스

abstract void abstractMethod() : 추상 메소드

extends Product : 추상 클래스(Product) 를 상속 받음

@Override public void abstractMethod() : 구현을 해도되고 안해도 됨.

구현 안함 = 다음 상속 받을 놈 한테 책임 전가

인터페이스 = 모든 메소드가 추상메소드인 클래스

인터페이스를 상속받는 클래스는

인터페이스에 정의된 추상 메소드를 반드시 반드시 절대로 절대로 구현 해야하는 책임이 있다.

API ( Application Programming Interface )

Book 클래스 Object 함수인 toString, equals , hashcode 오버라이딩(재정의)