Is~ A
is like a 관계를 가지면 안된다 (마치 ~와 같다 xx)
상속 (extends)
자바는 100프로 상속관계
자바는 객체끼리는 단일 상속만을 지원한다.(명확성)
Super class의 private member는 직접 접근할 수 없다.(캡슐화 파괴 방지)
Super() : super call
: super class 의 생성자를 호출
: sub class 생성자 함수의 첫번째 라인에 항상 존재한다. 다만 보이지 않을뿐..
: super class의 default constructor 가 아닌 오버로딩 된 constructor 를 호출하기 위해서 명시적으로 super() 를 사용
오버라이딩
1. Super class에 있는 메소드를 sub class에서 똑같이 제공하는 것
2. 목적
1) 부모의 메소드를 재정의
2) 부모의 메소드를 확장
3) 동적 바인딩 -> 가장 중요한 이유, 다형성
class A{
public A() {
// super() 생략됨
System.out.println("Super");
}
public A(int a) {
System.out.println(a);
}
}
public class IsA extends A {//extends Object {
public IsA() {
super(10);
System.out.println("Sub");
}
public static void main(String[] args) {
IsA is = new IsA();
}
}
상속 예시
public class AA {
private int a;
public AA() {
}
public AA(int a) {
this.a = a;
}
protected int getA() {
return a;
}
}
public class BB extends AA{
private int b;
public BB() {
}
public BB(int a, int b) {
super(a);
this.b = b;
}
protected int getA() {
return super.getA();
}
protected int getB() {
return b;
}
}
public class CC extends BB {
private int c;
public CC(int a,int b, int c) {
super(a,b);
this.c = c;
}
public int getC() {
return c;
}
public int getB() {
return super.getB();
}
public int getA() {
return super.getA();
}
public static void main(String[] args) {
CC c = new CC(1,2,3);
System.out.println(c.getA()); //1
System.out.println(c.getB()); //2
System.out.println(c.getC()); //3
}
}
상속의 예시2. AA, BB, CC를 각기 다른 class로 만들어서 실행하여도 작동한다.
super.xxx는 상위 클래스의 객체를 호출할 수 있다.
class Over {
public void disp() {
System.out.println("over");
}
}
public class Override extends Over{
//override
public void disp() {
System.out.println("over1");
}
public static void main (String[] args) {
Override over = new Override();
over.disp();
}
}
오버라이드의 예시. 상속받은 class 와 동일한 이름의 method가 있어도 동일한 class에 있는 method를 우선시 하여 호출한다.
'빅데이터교육과정 > JAVA' 카테고리의 다른 글
DAY 8. interface와 추상클래스 (0) | 2021.02.16 |
---|---|
급여 관리 프로그램 (0) | 2021.02.12 |
DAY 5. Class : has~ a 응용 (0) | 2021.02.04 |
DAY 5. Class : has~a (0) | 2021.02.04 |
DAY4. Class. (0) | 2021.02.02 |