쌍용 강북 교육센터 국비학원 Day 15일차
다형성 (Polymorphism)
상속을 이용하여 여러 클래스 타입을 하나의 클래스 타입으로 다루는 기술.
자식클래스로 생성되어진 객체를 부모 클래스 타입으로 받을 수 있다는 것이다.
전에 정리해놓은 것이 있어서 자세한 예제는 이쪽으로
https://sikcoding.tistory.com/16
Java 기초 입문 6일차 (Interface, 다형성, Exception)
Interface abstract, final과 함께 대표적인 규제로 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다. 만약 인터페이스에서 강
sikcoding.tistory.com
abstract (추상화)
전에 정리해놓은 것이 있어서 거기에 내용을 합쳐서 다듬었다.
https://sikcoding.tistory.com/15
Java 기초 입문 5일차 (classpath, API, 접근제어자, abstract)
클래스패스 (classpath) 옵션 -classpath는 자바를 실행할 때 사용할 클래스들의 위치를 가상머신에게 알려주는 역할을 한다. -classpath의 값으로 사용된 ".;lib"를 살펴보자 ' . ' - 현재 디렉토리에서 클
sikcoding.tistory.com
ex ) animal을 상속 받는 dog, cat, duck 클래스가 존재하고 이것을 실행시키는 main 클래스가 있다.
dog 와 cat은 showinfo 와 cry 메소드를 오버라이딩 했지만 duck 은 하지않았다. 그 결과 showinfo와 cry는 animal의 메소드 그대로 출력되고있다. 여기서 자식객체들을 (duck class 에서도) showinfo와 cry를 오버라이딩하면 animal(부모) 클래스에서는 메소드를 정의할 필요가 없어지므로 추상화를 시킨다. 아래처럼 말이다. (상속을 받는 모든 클래스가 메소드 오버라이딩이 되어야 추상화를 할 수 있다)
단, 여기에서 하나 주의할 점은 이처럼 추상메소드가 존재하면 그 클래스는 추상클래스가 되어버리는데 이때는 자신을 객체로 사용할 수 없다.
위 예제처럼 각각의 클래스들을 배열에 묶어서 각각의 메소드를 사용하기 편하게 활용하기 위해 추상화 클래스 (빈 껍데기)를 사용한다. 코드의 병합 (객체화)를 위해 추상화를 사용하고 추상화 메소드는 자식 객체에서 오버라이딩 (재정의)를 반드시 필요한다.
다형성과 객체 부분에서 많이 헷갈리는데 한 걸음 더 이해가 가는거 같다. 오늘은 여기까지
'Java' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 17일차 Java (Exception, throws, Anonymous 익명클래스, 람다식) (0) | 2023.01.26 |
---|---|
쌍용강북교육센터 국비 학원 Day 16일차 Java (static 블럭, Final, Interface) (0) | 2023.01.25 |
쌍용강북교육센터 국비 학원 Day 14일차 Java (Override, Overiding, 애너테이션) (0) | 2023.01.19 |
쌍용강북교육센터 국비 학원 Day 13일차 Java (접근제어자) (0) | 2023.01.18 |
쌍용강북교육센터 국비 학원 Day 12일차 Java (Date, Calendar, OOP, 정규표현식) (2) | 2023.01.17 |