기록해! 정리해!

자바 - 상속,메소드재정의,다형성 본문

JAVA

자바 - 상속,메소드재정의,다형성

zsuling 2022. 7. 15. 14:28

º 상속

=재사용

 

 

º  우선순위, 메소드 재정의

상속을 받았는데 동일한 이름으로 메소드를 사용하면 부모의 메소드를 덮어씌운다

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
Comments