본문 바로가기
Backend/JAVA

JAVA 상속

by YERIEL_염주둥 2020. 4. 22.
728x90

1. 상속

-이미 만들어진 클래스를 확장할 때 상속하여 확장한다.
- 확장 대상 클래스는 슈퍼 클래스라고 불리며, 확장 실행하는 클래스는 서브 클래스이다.

2. 슈퍼클래스

- 확장 대상 클래스
- 서브클래스에 접근 할 수 없다.

 

3. 서브클래스

- 확장을 실행하는 클래스
- 슈퍼 클래스의 필드 및 메서드를 가진다.
- 확장을 한다하더라도 접근지정자의 영향은 받는다.
- 서브 클래스에서 부모클래스를 가르키는 키워드는 super 키워드이다. 
- super.부모메서드 or 부모 필드 
- super() 부모 생성자 메서드

 

4. extends

- extends 라는 키워드를 활용하여 상속이 가능하다.
- extends 키워드가 없을 경우 Object 클래스를 상속받는다.

 

package kr.or.ksmart;

class SupperClass{
	private String name;
	
	public SupperClass() {
		System.out.println("슈퍼클래스 호출");
	}
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

class SubClass extends SupperClass{
	private String age;
	public SubClass() {
		System.out.println("서브 클래스 호출");
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	
}

public class JavaBasic06 {

	public static void main(String[] args) {
		
		SubClass sub = new SubClass();
		sub.setName("홍길동");
		sub.setAge("20");
		System.out.println(sub.getName());
		System.out.println(sub.getAge());
		
	}

}

 

5. 상속 생성자 메서드의 오버로딩

package kr.or.ksmart;

class SupperClass{
	private String name;
	
	public SupperClass() {
		System.out.println("슈퍼클래스 호출");
	}
	public  SupperClass(String name) {
		this.name = name;
		System.out.println("슈퍼클래스 생성자 메서드 오버로딩 호출");
	}
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

class SubClass extends SupperClass{
	private String age;
	public SubClass() {
		System.out.println("서브 클래스 호출");
	}
	public SubClass(String name) {
		super(name);
		System.out.println("서브 클래스 생성자 메서드 오버로딩 호출");
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	
}

public class JavaBasic06 {

	public static void main(String[] args) {

		SubClass sub = new SubClass("다빈치");
		sub.setAge("20");
		System.out.println(sub.getName());
		System.out.println(sub.getAge());
		
	}

}

 

슈퍼 클래스의 생성자 메서드가 인수값을 가질때 서브 클래스도 인수값을 가지며 super 키워드로 슈퍼 클래스에 접근하여 필드에 값을 저장한다.

반응형

'Backend > JAVA' 카테고리의 다른 글

JAVA override && final  (0) 2020.04.27
JAVA 다형성  (0) 2020.04.22
JAVA 생성자 설계하기  (0) 2020.04.22
JAVA 메서드 오버로딩  (0) 2020.04.22
JAVA 실습. 클래스  (0) 2020.04.21

댓글