Computer language/JAVA
JAVA) 다형성 메모리 구조와 다형성 이점
surhommejk
2018. 2. 6. 10:22
class Pbase {
}
class Cbase extends Pbase { // 같은 부모
String str = "abc";
}
class Dbase extends Pbase { // 같은 부모
}
public class Ex11_Inherit_Poly {
public static void main(String[] args) {
Cbase c = new Cbase();
Pbase p = c;
c.str = ""; // visible
p.str = ""; // invisible <-- error
}
}
부모 클래스로 선언한 변수로는 자식 주소값을 받는다 할지라도
그 주소를 통해서는 부모 클래스 자원만 볼 수 있다
Q) 다형성을 왜 쓰나?
다형성은 부모 타입으로 자식 객체의 주소값들을 받을 수 있다는 특징을 말한다. 이는 반복이나 검색 등을 돌릴때 다양한 자료들을 위해 따로따로 이런 기능수행을 위한 함수를 만들어줄 필요가 없이 다형성을 이용해 설정해둔 부모타입을 이용해서 하나의 함수 및 처리로 모든 data의 핸들링을 할 수 있다는 것을 의미한다. 이것이 다형성을 사용하는 핵심적인 이유라고 할 수 있다.
이것과 연관하여 중요한 것이 계층구조에 대한 파악이다. 사람이 작성한 코드 뿐만 아니라 컬렉션 프레임워크와 같은 것의 인터페이스 계층 구조를 잘 알면 코드를 작성할 때에 다형성을 고려하여 더 효율적이고 유지, 보수가 용이한 코드를 작성할 수 있다.