다형성 4

다형성(3) - OCP

객체지향의 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만든다.- 레고 블럭 조립하듯- 키보드 마우스 갈아 끼우듯- 컴퓨터 부품 갈아 끼우듯- 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법  운전자(클라이언트), 자동차 역할(인터페이스) K3, 아반떼, 모델3 (구현체) 운전자는 자동차의 역할만 알면 된다. k3를 운전하다 아반떼를 운전한다고 운전을 못하게 되는건 아니다. 로미오 역할 (인터페이스)는 대본만 있다면 장동건이 하던, 원빈이 하던 아무 상관이 없다. 내가 들어가도 문제가 없다.(?) 줄리엣 역할도 마찬가지로 김태희가 하지 않는다고 해서 줄리엣 역할이 변하게 되는건 아니란 것이다. 역할과 구현을 분리하자역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다.- ..

Java 2024.06.13

다형성 (2) - 추상클래스, 인터페이스

다형성 활용이전 파트에서 이해하지 못했던 다형적 참조를 어떤경우에 사용하는지 알 수 있다.동물의 울음소리 문제로, 다형성을 사용하지 않은 코드이다.package poly.ex1;public class AnimalSoundMain { public static void main(String[] args) { Dog dog = new Dog(); Cat cat = new Cat(); Cow cow = new Cow(); System.out.println("동물 소리 테스트 시작"); dog.sound(); System.out.println("동물 소리 테스트 종료"); System.out.println("동물 소리 테..

Java 2024.06.12

다형성 (캐스팅, 메서드 오버라이딩)

다형성이란?다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻한다. 보통 하나의 객체는 하나의 타입으로 고정되어 있는데,다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다. 다형적 참조 - 부모는 자식을 품을 수 있다. (자식 클래스를 참조할 수 있다.) package poly.basic;public class PolyMain { public static void main(String[] args) { //부모 변수가 부모 인스턴스 참조 System.out.println("Parent -> Parent"); Parent parent = new Parent(); parent.parentMethod(); // 자식 ..

Java 2024.06.10

다형성

다형성 (polymorphism)이란? 같은 이름을 사용하지만 구현 내용이 다르거나, 매개변수가 달라서 하나의 이름으로 다양한 기능을 수행할 수 있는 개념이다. Static Polymorphism 컴파일 타임에서 결정되는 다형성 단순하게 보면 메서드 오버로딩을 사용할 때 Dynamic Polymorphism 런타임 다형성 동적으로 구성되는 오버라이딩된 메서드를 사용할 때 오버라이딩 (overriding) 기능을 완전히 다르게 바꾸어 재설계 누르다 -> 행위 -> push() push()는 '확인' 혹은 '취소' 용도로 서로 다른 기능을 수행할 수 있다. 오버로딩(overloading) 기능은 같지만 인자를 다르게 하여 여러 경우를 처리 출력한다 -> 행위 -> print() ..

Kotlin 2023.12.23