polymorphism

    [자바/JAVA] 프로그래밍 - 다형성 (Polymorphism) - 추상(abstract)

    추상메소드 - 미완성된 메소드로 몸통부({})가 구현되어 있지 않은 메소드 추상클래스 - 미완성된 클래스 - 일반필드 + 일반메소드 [+ 추상메소드] => 추상메소드를 가진 클래스는 반드시 추상클래스로 명시 해야됨 * 추상메소드가 굳이 없어도 추상클래스로 만들 수 있음 언제사용되나요? > 개념적 : 단지 이 클래스가 미완성된 클래스다 라는걸 부여할 목적 => 덜 만들었을때 > 프로그래밍적 : 객체 생성이 불가 하게끔 라고자 할 때 * 추상메소드가 존재하는 추상클래스를 쓰는 이유 - 부모클래스에 추상메소드가 존재할 경우 자식클래스에서는 강제로 오버라이딩 해서 동일한 패턴의 메소드를 가지게 됨!! => 각 자식 클래스마다 실행시킬 내용은 다르지만 동일한 형태의 메소드로 구혔했으면 할 때 => 메소드 통일성 ..

    [자바/JAVA] 프로그래밍 - 다형성 (Polymorphism)

    // 기억해둘 것 !! '=' 기준으로 해서 왼쪽과 오른쪽의 자료형(타입)은 같아야 됨 System.out.println("1. 부모타입 레퍼런스로 부모객체를 다루는 경우"); Parent p1 = new Parent(); p1.printParent(); // p1 레퍼런스로 Parent 에만 접근 가능 System.out.println("2. 자식타입 레퍼런스로 자식객체를 다루는 경우"); Child1 c1 = new Child1(); c1.printChild1(); c1.printParent();// 자동형변환 된거였음!! (Child1 => Parent) // ((Parent)c1).printParent(); // c1 레퍼런스로 Child1, Parent 둘다 접근 가능 // Parent 접근시 ..