일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 자바
- 네트워크
- 정처기필기
- VLAN
- 네트워크관리사
- Oracle
- ospf
- 라우터
- jsp연결
- w3school
- javaee
- NCS
- 이것이 자바다
- php
- 참조타입
- 오라클
- 버추얼머신
- Cisco
- sql
- 데이터베이스
- rinux
- 정보처리기사
- 원형그래프
- ciscopacket
- html
- cisco packet
- 리눅스
- Java
- autoset
- jsp
- Today
- Total
기록해! 정리해!
자바 - 상속,메소드재정의,다형성 본문
º 상속
=재사용
º 우선순위, 메소드 재정의
상속을 받았는데 동일한 이름으로 메소드를 사용하면 부모의 메소드를 덮어씌운다
A에서 test2를 찍으면 test2가 나오는게 아니라 B에서 testB2()로 재정의했기때문에 testB2가 나온다.
--test2가 나오게 하려면 Test클래스에서 B가 아니라 그냥 A를 호출하면 됨.
º B클래스에 없더라도 A클래스에 있는 a와 k를 호출할 수 있다
º 메소드 재정의
A 생성자 필드값이 400:500으로 재정의 되지 않고 원래 자신의 값 100:200이 나온다
º 심화 메소드재정의 : 변수의 형이 기준이다
형을 A로 잡으면 어떻게 될까
A에 b는 없기때문에 쓸 수 없다고 에러가 난다.
불러온 a, k도 A에서 가져온 것이다
--메소드 재정의 된 것은 불러와도 재정의 된 것이 나온다.
A의 b.test2()를 불렀는데 B에서 재정의된 testB2()가 나온다
º A - B - C 생성자와 메소드 우선순위
B의 생성자 나오고 (A생성자 - B생성자 - B메소드(b) )
B 메소드 나오고 (B메소드(b))
C의 생성자 나온다 ((A생성자 - B생성자 - B메소드(b) - C생성자 )
º private 은 상속받을 수 없다
a3는 안나옴
º 자바는 다중상속을 허용하지 않는다
º DmbCellPhone
-CellPhone
-DmbCellPhone
-DmbCellPhoneEx
상속을 받을 때는 부모 클래스에 기본생성자가 있어야한다.
DmbCellPhone(){
super();
}
제일 첫번째 줄에 써야한다. (this도 제일 첫줄에 있어야한다)
this = 자기자신을 다 가져오는 것 // 매개변수랑 이름이 같으면 쓴다
super = 부모의 필드를 가져오는 것
º Student
-People
-Student
-StudentEx
-결과
메소드 재정의되어 ===>people 가 아니라 ===>student가 나옴
º 부모 메소드 호출하기
===>people이 호출됨.
º final
클래스나 필드, 메소드에 사용하면 상속할 수 없게된다
º 다형성
: 자기자신이 아닌 부모의
'JAVA' 카테고리의 다른 글
자바 - 강제타입변환, 추상클래스 (0) | 2022.07.19 |
---|---|
학생 성적 목록 보기 (0) | 2022.07.15 |
자바 -패키지, 접근제한자, 상속 (0) | 2022.07.14 |
자바 - 정적필드, 문제 , 싱글톤, final (0) | 2022.07.13 |
자바 - 객체 (0) | 2022.07.12 |