Java - super & super()

iseon_u·2022년 4월 30일
0

Java

목록 보기
25/77
post-thumbnail

참조변수 super & 생성자 super()


참조변수 super

  • 객체 자신을 가리키는 참조변수
  • 인스턴스 메서드 (생성자) 내에서만 존재 (static 메서드에서 사용 불가 ❌ )
  • 조상의 멤버를 자신의 멤버와 구별할 때 사용
class Parent { int x = 10; } // super.x
class Child extends Parent {
		int x = 20; // this.x
}
Child c = new Child();

class Parent { int x = 10; } // super.x 와 this.x 둘 다 가능
class Child extends Parent { }
Child c = new Child();

조상의 생성자 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.x = x;~~ // 조상의 멤버를 초기화
				~~this.y = y;~~ // 조상의 멤버를 초기화
				super(x, y); // 조상 클래스의 생성자 호출
				this.z = z;
		}
}
  • 생성자의 첫 줄에 반드시 생성자를 호출 ⭐⭐⭐
  • 그렇지 않으면 컴파일러가 생성자의 첫 줄에 super(); 를 삽입
  • 클래스 작성시 기본 생성자 작성은 필수 🌟
profile
🧑🏻‍💻 Hello World!

0개의 댓글