Backend/JAVA
JAVA(6)-자바의 4대 특징(2)_다형성
creativeDeveloper!
2022. 10. 3. 00:01
728x90
다형성은
상속을 받는다는 전제하에
발생하는 개념이다.
같은 부모를 가진 자식들은
첫째든, 둘째든, 셋째든
각자의 집을 갖고 있으면서도
부모의 집으로 들어갈 수 있다는
뜻이다.
그렇다면
다형성을 사용하면
어떤 점이 좋을까?
하나의 부모 타입을 활용해
왔다갔다 할 수 있다.
그래서 프로그램적으로보면
메모리 낭비를 줄일 수 있다.
코드로 보면 아래와 같다.
Mammal 클래스로부터 상속받은
Cat 과 Dog 클래스가 있다.
이 두 클래스는 birth를 오버라이드 했다.
다형성을 활용해서
Mal 클래스를 객체화 시키고
mal이라는 참조변수를 이용해
상속받은 Dog클래스를 객체화 할 수 있다.
그렇게 하므로써
부모의 메서드와 오버라이드한
birth 와 eat 메서드를 사용할 수 있다.
형변환은 두가지 유형으로 나뉘는데
첫번째가
작은잔에서 큰잔으로 갈때와
큰잔에서 작은잔으로 옮겨질때인데
전자의 경우에는 문제가 없지만
후자의 경우는
물이 넘친다는 문제가 발생한다.
전자의 경우는 묵시적 형변환이라고하고
후자의 경우는 명시적 형변환이라고 한다.
후자의 경우는 문제가 발생해서
명시적으로 표현해주어야 한다는 뜻이다.
다형성을 이용해서
chicken,duck,dog,cat은 척추동물에
들어갈 수 있지만,
birds안에는 cat과 duck이 들어갈 수 없다.
물려받은 자식클래스가
가진 메서드가
더 넓은 범위이므로 부모클래스를
에서는 자식클래스의 메서드를
사용할 수 없다.
다시말해,
자식의 순수메서드는
부모형태에서는 사용 할 수 없다
728x90