본문 바로가기
Web/Java

Java(14) - 다형성

by SeleniumBindingProtein 2022. 1. 28.
728x90
반응형

1. 다형성(polymorphism)
    1) 사전적 : 여러 가지 형태를 취할수 있는 능력
    2) 하나의 참조변수로 여러 타입의 객체를 참조할수 있는 것.
       즉 조상의 참조변수로 자손타입의 객체를 다룰 수 있는 것.
        => 원래의 타입은 유지됨.
       하나의 코드로 여러 자료형으로 구현되어 실행되는 것.
       같은 코드로 여러 다른 실행 결과가 나옴.
    3) 정보은닉, 상속과 더불어 OOP의 가장 큰 특징 중 하나임.
    4) 다형성을 잘 활용하면 유연하고 확장성 있고, 유지보수가 편리한 프로그램을 만들수 있음.   

2. 다형성으로 인한 형변환(캐스팅) 
    1) 형변환의 전제 조건 -- 상속, 구현관계에 있는 것만 객체타입 변환이 가능.
    2) Up-casting : 자손타입에서 조상타입으로 형변환, 형변환 생략가능. 묵시적
                    ==> 조작 멤버변수가 줄어듦.
    3) Down-casting : 
        - 조상타입 --> 자손타입으로 형변환, 형변환 생략불가. 명시적                   
                    ==> 조작 멤버변수가 많아짐.
        - 업캐스팅된 클래스를 다시 원래의 타입으로 형변환.  
    4) instanceof 연산자
        - 인스턴스의 형 체크 
        - 참조변수가 참조하는 인스턴스의 실제 타입을 체크하는데 사용함.  
        - instanceof의 연산결과가 true면, 해당 타입으로 형변환이 가능함.  

3. 매개변수의 다형성
    1) 참조타입 매개변수는 메서드 호출 시, 자신과 같은 타입이거나 또는 자손타입의 주소를
       즉 인스턴스를 넘겨주도록 함.

4. 여러 종류의 객체를 배열로 다루기 
    1) 조상타입의 배열에는 조상 뿐만 아니라, 자손들의 객체도 담을수 있음.

728x90
반응형

'Web > Java' 카테고리의 다른 글

Java(16) - Object 클래스  (0) 2022.01.28
Java(15) - 추상클래스와 인터페이스  (0) 2022.01.28
Java(13) - review2  (0) 2022.01.28
Java(12) - 상속과 오버라이딩  (0) 2022.01.28
Java(11) - 컬렉션프레임워크  (0) 2022.01.28

댓글