7_java_상속,오버로딩,오버라이딩차이

study/java · 2019. 11. 4. 08:36

@@ 오버로딩
한 클래스 내에 동일한 이름의 메소드를 여러개 작성하는 방법

오버로딩 조건
1) 메소드명이 동일해야 함
2) 매개변수가 달라야 함
- 매개변수의 개수
- 다른 자료형
- 매개변수의 순서
 * 단, 매개변수명은 오버로딩 성립조건과 관계 없음.

클래스 다이어그램에서 밑줄은 == static을 의미함

@@this
인스턴스의 메소드에 숨겨진 채 존재
할당된 객체를 가르킴(주소)

@this()
같은 클래스의 다른 생성자를 호출할때 사용
반드시 첫줄에 선언



@@메소드에서
(매개변수)넣을경우 복사가 되는데
기본자료형인경우 자료가 복사
외에 참조형인경우 주소가 복사되서 얕은복사모형을띈다
#(07 method())

@return
해당 메소드를 종료하고 값을가지고 자신을 호출한
자리로 돌아가라는 예약어

JVM가 자동으로 생성해주는 것 
java.lang,  return, default constructor , this, this(), Auto Casting

@@@객체배열@@@

@@@상속@@@
다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할
클래스에서 직접 만들지 않고 상속받음으로써
새클래스가 자신의 멤버처럼 사용할수 있는 기능

@목적
클래스의 재사용 , 공통적인 규약 정의

@장점
1. 코드의 재사용성
2. 코드의 추가 및 변경 용이
3. 코드의 중복을 제거하여  생산성과 유지보수에 크게 기여

@특징
1. 모든 클래스는 object클래스의 후손
2. 부모클래스의 생성자, 초기화블록은 상속 안됨
3. 부모의 private멤버는 직접접근불가

@클래스관계에서는 단일상속만 진행

@super()
부모 객체의 생상자를 호출하는 메소드로 
★기본적으로 후손 생성자에 부모 생성자 포함
jvm이 알아서만들어줌
@super.
나의 메모리속 안에 부모의 주소를 가르킴

@오버라이딩 Over Riding (위로 올라타다)
자식 클래스가 상속 받은 부모의  메소드를 재작성 하는 것

@특징
메소드 헤드라인 위에 Annotation, @Overrdie 표시

@성립조건
접근범위가 같거나 더 커야됨
메소드 이름 동일
매개변수의 개수,타입 동일
리턴 타입 동일

★오버라이딩과 오버로딩의 차이★

  오버라이딩 오버로딩
위치 하위클래스 같은클래스
작성규칙 이름,매개변수(개수,타입) 리턴타입이 같아야함 메소드이름 동일 나머진 상관없음
접근제한자 자식메소드의 접근범위가 부모 메소드의범위보다 넓거나 같아야함 접근 제한자와 상관없음
예외처리 자식메소드의 예외수가 부모 메소드의 예외수보다 적거나 범위가 좁아야함 예외처리 상관없음



@final
1. 필드상수 , 2. 지역변수, 3 final 클래스, 4. final 메소드
final class
상속이 불가능한 클래스
final method
오버라이딩이 불가능한 메소드