다형성 다형성은 같은 타입이지만, 실행 결과를 다양한 객체에서서 이용할 수 있는 성질을 뜻한다.다형성은 객체 지향 프로그래밍에서 굉장히 중요한 성질 중 하나이다.자바에서는 다형성을 보장하기 위해 타입 변환을 허용한다. 타입 변환 타입 변환은 총 두가지가 존재한다.자동 타입 변환(Promotion), 강제 타입 변환 (Casting) 1. 자동 타입 변환(Promotion) 자동 타입 변환은 말그대로 프로그램 실행 도중 자동적으로 타입이 변환되는 것을 말한다.자동 타입 변환은 보통 부모 타입에 자식 객체가 대입되는 것을 뜻한다.자식은 부모의 특징과 기능을 상속 받았기 때문에 동일 취급 될 수 있다는 것이 자동 타입 변환의 개념이다. 자동타입 변환해도 오버라이딩 된 메소드 호출 // promotion.met..
final 클래스와 메소드 앞에서 포스팅했던 final 필드에 대한 설명을 기억하는가?final필드는 초기값이 저장되면 프로그램 실행 도중 수정이 불가능하여 변화되지 않을 필드를 보통 final필드로 선언한다고 설명했을 것이다. 클래스와 메소드도 마찬가지로 final로 선언될 수 있다.final 키워드를 붙인 클래스는 최종적인 클래스가 되고, final 키워드를 붙인 메소드는 최종적인 메소드가 된다.즉, final 클래스는 부모클래스가 될 수 없어 자식 클래스를 가질 수 없으며, final 메소드는 자식클래스에서 오버라이딩 할 수 없다. 예를 들어, final class ClassName{ } ClassName 클래스는 부모 클래스가 될 수 없다. Parent.javapublic class Parent{..
상속(Inheritance) 일상생활에서 상속은 부모가 자식에게 무언가를 물려주는 행위를 말한다.객체 지향 프로그램에서도 그 의미는 같다.객체 지향 프로그램에서는 부모클래스가 자식클래스에게 멤버(필드, 메소드)들을 물려주는 것을 뜻한다. 상속을 사용하게 되면, 부모클래스에 있는 필드와 메소드를 자식클래스에 똑같이 쓸 필요가없다.그러므로, 중복된 코드 방지하고, 개발 시간을 줄여준다. 상속에는 몇가지 주의할 점이 있다.자바는 다중 상속을 허용하지 않으므로, 단 하나의 부모 클래스만 상속할 수 있다.부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속대상에서 제외된다.부모클래스와 자식클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 제외된다. 클..