개발자 도전기
[JAVA] 상속과 생성자 - super (생활코딩 공부 기록) 본문
인스턴스화의 과정에서 new 뒤에 생성자를 붙임으로써 인스턴스를 생성할 수 있다.
이때 new 뒤에 오는 생성자는 컴파일러에 의해 생성되는 기본 생성자이다.
그런데 우리가 생성자를 새로 지정할 경우 이 기본 생성자는 사라지게 된다.
자식 클래스의 경우 부모 생성자를 호출해서 사용하므로 기본 생성자가 없으면 오류를 일으킬 수 있는데
super() 생성자를 사용하면 부모 클래스의 기본 생성자가 사라져도 오류가 발생하지 않는다.
super 키워드는 자식 생성자에서 부모 생성자로부터 상속받은 멤버를 참조하는데 사용되는 참조 변수이다.
package Inheritance;
class Calculator {
int left, right;
public Calculator (int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left+this.right);
}
public void avg() {
System.out.println((this.left+this.right)/2);
}
}
class SubstractionableCalculator extends Calculator{
public SubstractionableCalculator(int left, int right) {
super(left, right);
}
public void substract() {
System.out.println(this.left - this.right);
}
public static void main(String[] args) {
SubstractionableCalculator c1 = new SubstractionableCalculator(10,20);
c1.sum();
c1.avg();
c1.substract();
}
}
'개발공부 > JAVA' 카테고리의 다른 글
[Java] do- while 문 (0) | 2024.02.26 |
---|---|
[코딩공부] switch문, switch expression (0) | 2024.02.24 |
[JAVA] 상속 (생활코딩 공부 기록) (0) | 2024.01.31 |
[JAVA] 생성자 (생활코딩 공부 기록) (0) | 2024.01.30 |
[JAVA] 유효범위-전역변수, 지역변수 (생활코딩 공부 정리) (0) | 2024.01.30 |