study/java
7_java_상속,오버로딩,오버라이딩차이
스파이크12
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 표시
@성립조건
접근범위가 같거나 더 커야됨
메소드 이름 동일
매개변수의 개수,타입 동일
리턴 타입 동일
★오버라이딩과 오버로딩의 차이★
오버라이딩 | 오버로딩 | |
위치 | 하위클래스 | 같은클래스 |
작성규칙 | 이름,매개변수(개수,타입) 리턴타입이 같아야함 | 메소드이름 동일 나머진 상관없음 |
접근제한자 | 자식메소드의 접근범위가 부모 메소드의범위보다 넓거나 같아야함 | 접근 제한자와 상관없음 |
예외처리 | 자식메소드의 예외수가 부모 메소드의 예외수보다 적거나 범위가 좁아야함 | 예외처리 상관없음 |