상속 (Inheritance) - 2

DONI·2021년 8월 19일
0

Java

목록 보기
33/46
post-thumbnail

🏹 super( ) 생성자

  • 부모 객체의 생성자를 호출하는 메서드로, 기본적으로 자식 생성자에 부모 생성자 포함
  • 부모 생성자가 가장 먼저 실행되어야 하기 때문에 super( )는 첫 줄에 존재
    (명시적으로 작성 시에도 반드시 첫 줄에만 작성)
  • 매개변수가 있는 부모 생성자 호출 → super(매개변수, 매개변수)

🏹 super. 참조변수

  • 상속을 통한 자식 클래스 정의 시 해당 자식 클래스의 부모 객체를 가리키는 참조변수
  • 자식 클래스 내에서 부모 클래스 객체에 접근하여 필드나 메서드 호출 시 사용

🏹 Is a VS Has a

  • Is a (상속관계)
    : 부모 클래스를 자식 클래스가 상속
    "자식 클래스는 (하나의) 부모 클래스이다."

  • Has a (포함관계)
    : 한 클래스의 멤버 변수로 다른 클래스 타입의 참조변수를 선언


🚩 소스코드

package com.kh.p1.inherit.parent.model.vo;
public class Person {
	protected String name;  // 이름
	protected int age;      // 나이
	protected char gender;  // 성별
	protected String addr;  // 주소
	
	public Person() {}

	public Person(String name, int age, char gender, String addr) {
		this.name = name;
		this.age = age;
		this.gender = gender;
		this.addr = addr;
	}
	
	// getter, setter 메서드 생략
	
	public String information() {
		return "이름 : " + name + ", 나이 : " + age + ", 성별 : " + gender + ", 주소 : " + addr;
	}
	
}
package com.kh.p1.inherit.child.model.vo;
import com.kh.p1.inherit.parent.model.vo.Person;
public class Student extends Person {
	private int grade;      // 학년
	private String major;   // 전공
	
	public Student() {}
	
	public Student(String name, int age, char gender, String addr, int grade, String major) {
		super(name, age, gender, addr);
		this.grade = grade;
		this.major = major;
	}
	
	// getter, setter 메서드 생략
	
	public String information() {
		return super.information() + ", 학년 : " + grade + ", 전공 : " + major + com.information();
	}
	
}
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글