| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 딥러닝
- SVM
- RNN
- 생물정보학
- 이항분포
- ncbi
- Kaggle
- 캐글
- 서열정렬
- Java
- MERS
- BLaST
- 인공지능
- 바이오파이썬
- AP Computer Science A
- 결정트리
- HMM
- 블록체인
- 시그모이드
- 생명정보학
- 인공신경망
- AP
- 오류역전파
- bioinformatics
- COVID
- 파이썬
- CNN
- 인공지능 수학
- 바이오인포매틱스
- 자바
- Today
- Total
데이터 과학
상속에서 생성자와 super 연산 본문
아래 예제는 출력물이 조금 복잡합니다.
객체 타입과 객체가 다른 상황에서 super를 사용한 생성자 상속과 관련된 내용입니다.
Dancer a = new Acrobat();
본문에서 객체 대상( Acrobat() )이 객체 타입(Dancer)과 다르게 설정되어 있죠.
이에 a가 가리키는 대상이 다릅니다.
super.act();
이 명령어를 통해 Dancer 클래스에서 가지고 있는 act() 메소드를 전부 포함하게 됩니다.
public void act() {
System.out.print (" spin");
doTrick();
}
이 메소드가 되겠네요. 주의해야 할 점은 doTrick()입니다. doTrick은 Dancer클래스에도 있고 상속받은 하위 클래스인 Acrobat에도 있습니다.
어느 메소드를 호출해야 할까요? 하위 클래스에서 super를 호출해서 메소드를 포함하는 상태이니 Acrobat에 있는 doTrick() 메소드를 호출해야 합니다.
그러면 somersault 가 출력되겠네요. Dancer 클래스에 있는 doTrick()은 호출되지 않습니다.
이 예제는 상속에서의 super 함수의 역할과 의미에 대한 예제입니다.
super를 호출하면 메소드의 내용이 전부 포함됩니다.
public class Dancer {
public void act() {
System.out.print (" spin");
doTrick();
}
public void doTrick() {
System.out.print (" float");
}
public static void main(String args[]) {
Dancer a = new Acrobat();
a.act();
}
}
class Acrobat extends Dancer {
public void act() {
super.act();
System.out.print (" flip");
}
public void doTrick() {
System.out.print (" somersault");
}
}
결과 :

생성자에 대한 내용은 아래 예제를 참고해서 보세요.
https://tsyoon.tistory.com/183
생성자 예제
생성자와 접근한정자 관련 예제입니다. 예제 1) public class Person { private String name; private int age; public Person(String aName, int anAge) { name = aName; age = anAge; } /** @return the String form of this person */ public String toS
tsyoon.tistory.com
'AP > AP Computer Science A' 카테고리의 다른 글
| ArrayList 예제 -2 (0) | 2024.06.04 |
|---|---|
| 추상화와 super 예제 (0) | 2024.06.04 |
| 상속 예제 (0) | 2024.05.31 |
| this와 toString() 메소드 (0) | 2024.05.29 |
| static 변수 (0) | 2024.05.29 |