방명록
- 자바의 정석 73~74강 오버라이딩, 참조변수 super, 생성자 super()2023년 08월 05일 05시 47분 48초에 업로드 된 글입니다.작성자: 민발자728x90
ch 7-7~9 오버라이딩
1. 오버라이딩
상속받은 조상의 메서드를 자신에 맞게 변경하는것
선언부 변경불가, 구현부만 변경가능
class Point { int x; int y; String getLocation(){ return "x :" + x + "y :" + y; } } class Point3D extends Point { int z; // 상속받은 getLocation()을 오버라이딩 String getLocation(){ return "x :" + x + "y :" + y + "z: " + z; } }
2. 오버라이딩 조건
- 선언부가 조상 메서드와 일치(반환타입, 메서드 이름, 매개변수 목록)
- 접근 제어자를 조상 메서드보다 좁은 범위로 변경 불가
- 예외는 조상 메서드보다 많이 선언 불가
3. 오버로딩과 오버라이딩
오버로딩 : 이름만 같을 뿐 기존에 없는 새로운 메서드를 정의 new
오버라이딩 : 상속받은 메서드의 내용을 변경 change
class Parent { void parentMethod() {} } class Child extends Parent { void parentMethod() {} // 오버라이딩 void parentMethod(int i) {} // 오버로딩 void childeMethod() {} // 메서드 정의 void childeMethod(int i) {} // 오버로딩 void childeMethod() {} // 중복 정의 에러 발생 }
ch 7-10~11 참조변수 super, 생성자 super()
1. 참조변수 super
객체 자신을 가리키는 참조변수, 인스턴스 매서드(생성자)내에만 존재, static 메서드내에서 사용 불가
조상의 멤버를 자신의 멤버와 구별할 때 사용
this와 유사
// 조상 멤버와 자신 멤버 구별 class Parent{ int x = 10; // super.x } class Child extends Parent { int x = 20; // this.x void method() { System.out.println(this.x); // 20 System.out.println(super.x); // 10 } } // super와 this 같을 수 있음 class Parent{ int x = 10; // super.x, this.x 둘 다 해당 } class Child extends Parent { void method() { System.out.println(this.x); // 10 System.out.println(super.x); // 10 } }
2. super()
조상의 생성자를 호출할 때
상속은 생성자와 초기화블럭 상속 불가
조상의 멤버는 조상의 생성자를 호출하여 초기화
class Point{ int x, y; Point(int x, int y){ this.x = x; this.y = y; } } class Point3D extends Point { int z; Point3D(int x, int y, int z){ // 자신 멤버 초기화 this.z = z; /* 조상 멤버 초기화 this.x = x; this.y = y; */ // 조상의 생성자를 호출해 초기화하는것이 더 바람직 super(x, y); } }
3. super() 조상 생성자 조건
생성자의 첫 줄에 반드시 생성자 호출 → 미호출시 컴파일러가 자동으로 첫줄에 super(); 삽입함
728x90'정리 > Java' 카테고리의 다른 글
자바의 정석 79~강 캡슐화, 다형성, 참조변수 형변환, instanceof 연산자, (0) 2023.08.06 자바의 정석 75~강 패키지, 클래스 패스, import, 제어자, 접근 제어자 (1) 2023.08.05 자바의 정석 70~72강 상속, 클래스 간의 관계, 상속과 포함, 단일 상속, Object 클래스 (0) 2023.08.04 자바의 정석 65~69강 static&인스턴스 메서드, 오버로딩, 생성자, this(), 변수 초기화 (0) 2023.08.04 자바의 정석 61~64강 return문, 반환값, 호출스택, 기본형매개변수, 참조형 매개변수, 참조형 반환타입 (0) 2023.08.03 다음글이 없습니다.이전글이 없습니다.댓글