JAVA

▶︎상속◀︎

chojdsj 2023. 5. 3. 22:32
728x90
상속

 

 

- 클래스 간의 상속시에는 extends 키워드 사용 

 

 

- 단일 상속 : 클래스간의 관계가 다중 상속보다 명확하고 신뢰성 있는 코드 작성, 자바에서는 다중 상속 미지원->단일 상속만 지원 

 

- 모든 클래스는 Object 클래스의 후손

 

- 부모클래스의 생성자, 초기화 블록은 상속 안됨. 자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶으면 super( ) 활용

 

- 부모의 private 멤버는 상속은 되지만 직접 접근 불가하다. super( ) 이용하여 전달받은 부모 필드 값을 부모 생성자 쪽으로 넘겨서 생성.        하거나 getter, setter 메소드를 이용하여 접근 

 

 

 

 

 

super( ) 

 

 

- 부모 객체의 생성자를 호출하는 메소드로 기본적으로 자식 생성자에 부모 생성자 포함 

 

- 자식 객체 생성 시에는 부모부터 생성이 되기 때문에 자식 클래스 생성자 안에는 부모 생성자를 호출하는 super( ) 가 첫줄에 존재(부모 생성자가 가장 먼저 실행되어야 하기 때문)

 

- 매개변수 있는 부모 생성자 호출은 super(매개변수,매개변수…)를 넣으면 됨 

 

 

 

 

 

오버라이딩 ( Override)

 

 

- 자식 클래스가 상속 받은 부모 메소드를 재정의 하는것 

 

- 부모가 제공하는 기능을 자식이 일부 고쳐 사용하겠다는 의미로 자식 객체를 통한 실행 시 자식것이 우선권을 가짐 

 

- 메소드 헤드라인 위에 반드시 @Override 표시

 

- 접근 제한자를 부모 것보다 같거나 넓은 범위로 변경가능 

 

 

 

 

 

오버라이딩 성립조건 

 

 

- 메소드 이름 동일

 

- 매개변수의 개수,타입,순서 동일

 

- 리턴 타입 동일

 

- Private 메소드는 오버라이딩 불가 

 

 

 

 

오버로딩

 

 

- 한 클래스 내에서 같은 이름의 메소드를 여러개 정의하는것

 

- 메소드의 리턴타입은 오버로딩 조건과 관계없음 

 

- 성립 조건 : 같은 메소드 이름, 다른 매개변수 선언부(매개변수 타입, 개수, 순서)

 

 

 

 

 

 

 

Final 예약어

 


- Final 클래스 : 상속이 불가능한 클래스 

 

- Final 메소드 : 상속 시 오버라이딩이 불가능한 메소드 

 

 

'JAVA' 카테고리의 다른 글

▶︎인터페이스◀︎  (0) 2023.05.10
▶︎다형성◀︎  (0) 2023.05.10
▶︎객체 배열◀︎  (0) 2023.05.03
▶︎회원가입◀︎  (0) 2023.05.02
▶︎클래스◀︎  (0) 2023.04.30