[공공데이터 개발과정] 0327 자바

송경근·2023년 5월 13일
0

자바 배우기

목록 보기
10/18
post-thumbnail

상속

상속의 필요성
	코드 재사용
	코드 확장

개발이 잘 된 부모 클래스가 있다면 
코드 중복과 개발시간을 줄일 수 있다.

클래스의 수정을 최소화시킬 수 있다

의미

상속 하는 클래스

상위클래스, parent 클래스, base 클래스(x),super 클래스

상속 받는 클래스

하위클래스, child 클래스, derived 클래스, sub 클래스
![](https://velog.velcdn.com/images/kgsong8020/post/3da16361-1cf5-42fc-9db4-b65a2019eb85/image.png)

자바에서는 단일 상속

코드의 안정성을 높이고
모호성을 낮추기 위해서

*상속 구현 경우

상위 클래스(부모클래스)가 하위 클래스(자식 클래스)보다 일반적인 개념이나 기능을 가지고 있을 때.
	구체적인 기능 : 하위 클래스
	


Has - a : 포함

This 키워드

인스턴스가 자기 자신의 주소값을 가진 것
클래스가 인스턴스를 가지고 있을 때, 자기 클래스를 호출 할 수 있는 기능
	클래스에 선언되어 있는 필드와 메서드를 사용한다고 명시해줄때도 사용!

Super 키워드

하위 클래스에서 가지는 상위클래스에 대한 참조 값
상위클래스의 기본 생성자를 호출함
생성자 오버로딩을 했을 때 기본생성자가 없으면 컴파일 에러 발생

상속받은 클래스(객체)의 인스턴스 생성 시
메모리 상에 부모 클래스가 먼저 생성

>자식 인스턴스 생성
이때 부모의 필드와 자식의 필드는 서로 독립적이다!

상속 관계에서는 모든 자식 클래스는 부모 클래스로 형변환이 가능(묵시적)

업캐스팅된 클래스를 다시 원래의 타입으로 형변환할때 사용
배열에서 animal에 다 집어넣었을거아님
Egle을 쓰려면 배열에서 egle을 빼내야하니까
그 때 다운캐스팅해서 사용
//근데 잘 안씀 이런게 있다~ 정도만 이해하자

메서드 오버라이딩

물려받은 메서드를 자식 클래스에게 맞도록 수정하는 것
오버로딩	생성자 선언 시 이름을 제외한 시그니쳐를 다르게 선언하는것

오버라이딩	상속 받은(필드나) 메서드를 변경하는 것
(재정의)

재정의를 통해 매서드 변경시 부모x 자기 자신의 메소드를 우선적으로 사용함.

 규칙
	부모 클래스와 동일한 시그니처를 사용해야한다. 반환타입까지도!
		기능만 바꿀 수 있다
	부모 클래스의 메서드보다 접근 범위를 더 좁게 수정 불가
	추가적인 예외가 발생할 수 있음을 나타낼 수 없다.

애노테이션(Annotation)

주석
컴파일러에게 특별한 정보를 제공해주는 역할

오버라이드 애노테이션을 사용하면 컴파일러가 부모에 있는 메서드, 시그니쳐, 반환값을 잘 사용했는지 체크해줌
	= 오류메세지 출력
정확하게 오버라이딩이 되었는지 체크하고 문제없으면 실행

메모리

// 상속 접근제한자

Protected : (외부 : private / 자식 : public)

패키지

클래스 파일을 묶어서 관리하기 위한 수단으로 파일 시스템의 폴더를 이용
도메인(url 주소)을 역순으로 만들기도.
여러 회사가 같이 개발하고 관리하는 클래스가 있을 경우 
회사명을 제외한 패키지 이름을 맞춘다

선언

주석문을 제외하고 반드시 첫 라인에 위치
패키지 이름은 모두 소문자로.
패키지 이름이 중복되지않게 회사의 도메인이름을 역순으로 사용
클래스 주제나 프로젝트 명을 적어주자.

사용

다른 패키지에 있는 공개된 클래스를 사용하려면 패키지 경로를 컴파일러에게 알려주자
Import 패키지이름.클래스;
Import 패키지이름.*;
	

다형성

머시깽 - 했다

profile
개발자가 되려는 학생입니다

0개의 댓글