Java의 정석 - 교보문고
자바의 기초부터 객제지향개념을 넘어 실전활용까지 수록한『Java의 정석』. 저자의 오랜 실무경험과 강의한 내용으로 구성되어 자바를 처음 배우는 초보자들의 궁금한 점을 빠짐없이 담고 있
www.kyobobook.co.kr
[다형성(polymorphism)]
* 다형성이란?
'여러 가지 형태를 가질 수 있는 능력'
조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하는 것
지금까지, 생성된 인스턴스를 다루기 위해서 인스턴스의 타입과 일치하는 타입의 참조변수만을 사용했다.
즉, Candy인스턴스를 다루기 위해서는 Candy타입의 참조변수를 사용하고,
Chocolate인스턴스를 다루기 위해서는 Chocolate타입의 참조변수를 사용했다.
인스턴스 타입과 참조변수 타입이 일치하는 것이 일반적이지만,
Candy와 Chocolate클래스가 서로 상속관계에 있을 경우.
조상 클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조하는 것도 가능하다는 의미다.
자손타입의 참조변수로 조상타입의 인스턴스를 참조하는 것은
존재하지 않는 멤버를 사용하고자 할 가능성이 있기 때문에 허용하지 않는다.
조상타입의 참조변수로 자손타입의 인스턴스를 참조할 수 있다.
반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다.
[추상클래스(abstract class)]
* 추상클래스란?
미완성 클래스를 의미한다.
멤버의 개수와는 관계가 없고, 미완성 메서드(추상메서드)를 포함하고 있다는 뜻이다.
abstract class 클래스이름 {
}
추상클래스 자체로는 클래스의 역할을 다하지 못하지만, 새로운 클래스를 작성할 때 틀이 되어준다.
추상클래스는 추상메서드를 포함하고 있다는 것을 제외하고는 일반클래스와 전혀 다르지 않다.
추상클래스에도 생성자가 있고, 멤버변수와 메서드도 가질 수 있다.
[추상메서드(abstract method)]
* 추상메서드란?
메서드에서 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것
설계만 해두고 실제 수행될 내용은 작성하지 않았음
/* 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다. */
abstract 리턴타입 메서드이름();
실제 내용은 상속받는 클래스에서 구현하도록 비워둔다.
키워드 'abstract'를 앞에 붙여주고, 추상메서드는 구현부가 없으므로 괄호{}대신 ;을 적는다.
728x90
'Programming Language > Java' 카테고리의 다른 글
[Java] 인터페이스(interface) (0) | 2021.02.23 |
---|---|
[Java] 상속 | 클래스 상속, 오버라이딩, 오버로딩 (0) | 2021.02.23 |
[Java] 객체지향언어(3) | 제어자(modifier), 접근 제어자(access modifier) (0) | 2021.01.31 |
[Java] 클래스(class) 문제 풀이 | 클래스(class)작성 예제, 엔클로징 인스턴스 오류 (1) | 2021.01.31 |
[Java] 객체지향언어(2) | 변수와 메서드, 생성자 (1) | 2021.01.25 |