2013년 1월 10일 목요일

[Java] abstract와 다형성

자바에서는 부모클래스 참조변수에 부모클래스로 만든 객체의 주소값뿐만 아니라 그 클래스의 자식클래스 객체도 대입할 수 있다.

즉 부모 클래스는 자식 클래스 객체를 모두 가리킬수 있다.
이것이 다형성이다! 이것은 아주 편리한 것이다!!! 배열뿐만 아니라 부모클래스를 선언해서 모든 자식을 가리키고 관리할 수 있기 때문이다!

또한 부모 클래스의 메소드의 이름과 타입형태를 자식 클래스에 똑같이 정해줄 수 있는 메소드 오버라이딩이 가능하다. 따라서 부모 클래스 객체를 생성해서 메소드를 호출하면 부모 클래스의 호출이 되고 자식 클래스 객체를 생성해서 같은 메소드를 호출하면 자식 클래스의 메소드를 호출한다.

abstract는 부모 클래스에서 정의해 놓으면 자식 클래스에서 반드시 부모 클래스의 abstract메소드를 재정의 해야만 하는데 이는 그 메소드를 반드시 구현하도록 만들기 위해서이다.

또한 abstract로 자식 클래스에서 재정의하면 부모클래스의 메소드를 호출하더라도 실제로는 자식클래스의 메소드가 호출되도록 한다,.

댓글 없음:

댓글 쓰기