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 |
댓글