Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자 도전기

[JAVA] 상속과 생성자 - super (생활코딩 공부 기록) 본문

개발공부/JAVA

[JAVA] 상속과 생성자 - super (생활코딩 공부 기록)

jnnjnn 2024. 1. 31. 20:51

 

인스턴스화의 과정에서 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();
	}

}