본문 바로가기

JAVA

[ JAVA / 자바 ] 부모생성자 호출을 위한 super 사용법

super()은 부모클래스의 함수 뿐만 아니라 생성자도 호출할 수 있다.

super 사용 예제

 

// 부모 클래스
// Person.java

package main.person;

public class Person {

	// 상속받은 클래스만 접근 가능
	protected int num;
	protected String name;
	protected String dept;
	protected String address;

	public Person() {

	}

	public Person(int num, String name, String dept, String address) {
		this.num = num;
		this.name = name;
		this.dept = dept;
		this.address = address;
	}

	public void print() {
		System.out.println("num : " + num);
		System.out.println("name : " + name);
		System.out.println("dept : " + dept);
		System.out.println("address : " + address);
	}

}

 

// 자식 클래스
// Professor.java 

package main.person;

public class Professor extends Person {

	// protected int num;
	// protected String name;
	// protected String dept;
	// protected String address;
	// Person 클래스의 함수들도 상속 받았다.

	private String[] subjects;

	public Professor() {

	}

	public Professor(int num, String name, String dept, String address, String[] subjects) {
		super(num, name, dept, address);
		this.subjects = subjects;
	}

	public void printSubj() {
		System.out.println(name + " 교수의 개설 과목");
		for (int i = 0; i < subjects.length; i++) {
			System.out.println(subjects[i]);
		}
	}

	public void print() {
		super.print();
		printSubj();
	}


}