JAVA/객체 지향 프로그래밍 2

추상 클래스와 인터페이스

추상 (abstract) :실체간의 공통되는 특성을 추출한 것 추상 클래스 1. abstract를 사용해 선언 2. 추상 클래스는 new 생성자를 이용해 인스턴스화 할 수 없다. 대신, 자식 객체(실체 클래스)를 통해(extends) 생성 된다. 추상 메서드 실행 블록 { } 이 없다. 인터페이스 : 객체의 사용 설명서, 객체 생성 불가,컴파일러(javac.exe)를 통해 .class형태로 컴파일 되기 때문에 물리적인 형태는 클래스와 동일 //상수 (다양화를 위해 인터페이스는 데이터를 저장할 수 없다 BUT 상수 필드는 정적 필드이므로...) //메서드 (public이 생략되어 있다) 장점 1. 객체의 교환성을 높여준다 2. 객체마다 실행 내용과 리턴값이 달라 코드 변경 없이 코드 다양화 상수 초기값 필..

상속과 다형성

상속 다중 상속 불가 → 인터페이스는 가능! this 객체 자신의 참조 super() 부모 호출 (new랑 비슷) 캡슐화 민감한 정보를 클래스로 묶어 숨긴다 → getter, setter 메서드로 변경/검증 가능! 접근제한자 protected :import시 다른 패키지여도 사용 가능 Method Override : 메서드 재정의 1. 선언부(signature)가 동일해야 한다 2. 접근 제한을 더 강하게 할 수 없다 3. 새로운 예외를 throw 할 수 없다 Tip) Source > Override Methods... > 리턴문만 수정하면 편리 final 최종 상태이므로 final(최종적인)이 붙은 클래스는 재정의 X 다형성 : 자식 타입은 부모 타입으로 자동 타입 변환 가능! 선언하는 타입의 필드와 ..