본문 바로가기

JAVA

[40일차] chap.7 상속

 

결과 순서 주의해서 보기 ! 

 

 

 

메소드 재정의: 상속을 받았을 때 하위클래스에서 동일한 명의 메소드를 만들면
                         상위클래스의 메소드를 덮어쓰게 된다 

 

*필드의 경우는 재정의가 되지 않는다 

B 에는 a,k가 없지만 정상적으로 출력된다 

 

A 클래스에서 a.k 를 호출하면 본인 클래스에 있는 필드값으로 출력됨 


변수의 형을 부모로 잡으면 부모에 없는 b의 값은 사용하지 못함
형을 A로 했을때 , 객체 생성은 B로 했지만 A의 a,k 값이 나온다 !!
반면 형을 A로 잡아도 메소드는 재정의된 값으로 출력이된다


B는 A 를 상속받고 C는 B를 상속받는 경우 
실행 순서


A의 필드에서 private 필드는 상속받은 B에서도 접근할 수 없음

접근이 되야 상속도 가능함 
자바는 다중상속을 허용하지 않는다 
상속을 받기 위해서는 부모클래스에 기본생성자가 있어야한다 
자식클래스 기본생성자에는 super(); 라는 부모생성자 호출하는 구문이 존재하고
생략이 가능하다 & 항상 생성자의 제일 첫번째 줄에 와야한다 (this () 랑 동일)

 


부모 메소드 호출 (super)


 

final 클래스와 final 메소드 
:final 클래스는 부모클래스가 될 수 없어서 상속할 수 없다 , final 메소드는 상속받은 자식클래스에서 메소드재정의를 할 수 없다 

타입변환과 다형성
다형성을 위해 자바는 부모 클래스로 타입 변환을 허용한다 
자동형변환:자식은 부모의 특징과 기능을 상속받기 때문에 부모와 동일하게 취급될 수 있다

 

 

 

'JAVA' 카테고리의 다른 글

[41일차] 배포 export, import,servlet  (0) 2022.07.18
[40일차] jsp  (0) 2022.07.15
[39일차] chap6. p248~ 패키지  (0) 2022.07.14
[37일차] chap6 클래스  (0) 2022.07.12
[36일차+37일차] 교재 p171~ 열거타입  (0) 2022.07.11