
- 추상 메소드 : 자식 클래스에서 재정의해야만 사용할 수 있는 메소드
- 추상 클래스 : 추상 메소드를 1개 이상 포함하는 클래스
- 클래스의 형 변환 : 추상 메소드를 부모 클래스의 객체 변수를 통해 사용하기 위해서, 부모 클래스의 객체 변수를 선언할 때 자식 클래스의 생성자를 이용하는 것
(출력 : Chicken is animal Zoo)
abstract class Animal { | 추상 클래스 Animal을 정의 |
String a = "is animal"; | 문자열 변수 a를 선언하고 "is animal"로 초기화 |
abstract void look(); | 추상 메소드 look()을 정의 |
void show() { | 메소드 show()를 정의 |
System.out.println("zoo"); | 'Zoo'를 출력 |
} | |
} | |
class Chicken extends Animal { | 부모 클래스가 Animal인 클래스 Chicken을 정의 + 상속 |
Chicken() { | 메소드 Chicken()을 정의 (클래스와 이름이 동일하므로 생성자) |
look(); | look() 메소드를 호출 |
} | |
void look() { | 메소드 look()을 정의, 셋쨋줄의 추상 메소드를 재정의하는 것 |
System.out.println("Chicken" + a); | 'Chicken'과 a의 값, 'is animal'을 출력 |
} | |
void display() { | 메소드 display()를 정의 |
System.out.println("two wings"); | |
} | |
} | |
public class Test { | |
public static void main(String[] args) { | |
Animal a = new Chicken(); | Chicken 클래스의 생성자를 이용해 Animal 클래스의 객체 변수 a를 선언 |
a.show(); | a의 show() 메소드를 호출 |
} | |
} |
※ 부모 클래스의 객체 변수를 선언하면서 자식 클래스의 생성자를 사용하면 형 변환이 발생합니다.
※ 클래스 형 변환이 발생하여, 메소드 look()은 자식 클래스에서 재정의 되었습니다. 따라서, 부모 클래스의 메소드 look()이 호출된다면 자식 클래스의 메소드 look()이 대신 수행되어야 합니다.
'etc. > 정보처리기사' 카테고리의 다른 글
프로그래밍 언어의 종류 (0) | 2021.09.27 |
---|---|
★★★ (Python) 활용 (0) | 2021.09.27 |
★ (Java) 클래스 (0) | 2021.09.20 |
★★★★ (Java) 제어문 (0) | 2021.09.19 |
★★★★★ (Java) 데이터 입 · 출력 (0) | 2021.09.19 |

- 추상 메소드 : 자식 클래스에서 재정의해야만 사용할 수 있는 메소드
- 추상 클래스 : 추상 메소드를 1개 이상 포함하는 클래스
- 클래스의 형 변환 : 추상 메소드를 부모 클래스의 객체 변수를 통해 사용하기 위해서, 부모 클래스의 객체 변수를 선언할 때 자식 클래스의 생성자를 이용하는 것
(출력 : Chicken is animal Zoo)
abstract class Animal { | 추상 클래스 Animal을 정의 |
String a = "is animal"; | 문자열 변수 a를 선언하고 "is animal"로 초기화 |
abstract void look(); | 추상 메소드 look()을 정의 |
void show() { | 메소드 show()를 정의 |
System.out.println("zoo"); | 'Zoo'를 출력 |
} | |
} | |
class Chicken extends Animal { | 부모 클래스가 Animal인 클래스 Chicken을 정의 + 상속 |
Chicken() { | 메소드 Chicken()을 정의 (클래스와 이름이 동일하므로 생성자) |
look(); | look() 메소드를 호출 |
} | |
void look() { | 메소드 look()을 정의, 셋쨋줄의 추상 메소드를 재정의하는 것 |
System.out.println("Chicken" + a); | 'Chicken'과 a의 값, 'is animal'을 출력 |
} | |
void display() { | 메소드 display()를 정의 |
System.out.println("two wings"); | |
} | |
} | |
public class Test { | |
public static void main(String[] args) { | |
Animal a = new Chicken(); | Chicken 클래스의 생성자를 이용해 Animal 클래스의 객체 변수 a를 선언 |
a.show(); | a의 show() 메소드를 호출 |
} | |
} |
※ 부모 클래스의 객체 변수를 선언하면서 자식 클래스의 생성자를 사용하면 형 변환이 발생합니다.
※ 클래스 형 변환이 발생하여, 메소드 look()은 자식 클래스에서 재정의 되었습니다. 따라서, 부모 클래스의 메소드 look()이 호출된다면 자식 클래스의 메소드 look()이 대신 수행되어야 합니다.
'etc. > 정보처리기사' 카테고리의 다른 글
프로그래밍 언어의 종류 (0) | 2021.09.27 |
---|---|
★★★ (Python) 활용 (0) | 2021.09.27 |
★ (Java) 클래스 (0) | 2021.09.20 |
★★★★ (Java) 제어문 (0) | 2021.09.19 |
★★★★★ (Java) 데이터 입 · 출력 (0) | 2021.09.19 |