hwangpro 2021. 2. 28. 01:35

Is ~ a 관계

- 상위계층에서 하위계층으로 내려가는 관계, 상속해주는 클래스가 슈퍼클래스 상속받는 클래스가 서브클래스이다. 상속의 특징은 확장성, 재사용성이다.

- is like a 관계를 가지면 안 된다.

- 자바는 100% 상속관계. (extends class())

- 자바는 객체끼리는 단일상속만을 지원한다.(명확성) C++은 다중상속을 지원하지만 모호성(ambigious) 때문에 지원하지 않는다.

- super classprivate member는 직접접근이 허용이 안 된다.(캡슐화)

 

super() : super call

: super class의 생성자를 호출. 호출 시 첫 번째 줄이 아니면 에러발생.

: sub class의 생성자함수의 첫 번째 라인에 항상 존재한다.

- 명시적으로 사용하는 경우는 부모의 오버로딩된 생성자 중 하나를 호출하기 위해서

 

팀별 과제

직원 급여관리 프로그램

1. 최소 3층 구조

2. 각 클래스별로 필드, 메소드 다 정의

3. 사용자 (기업)

 

 

class A{

public A() {

super();

System.out.println("Super class");

}

}

 

public class Test_Is_A extends A{                                                 

public Test_Is_A() {

//super();

System.out.println("Sub class");t

}

 

public static void main(String[] args) {

 

Test_Is_A is = new Test_Is_A();

 

 

}

 

}

결과:

 

오버라이딩.

1. super class에 있는 메소드를 sub class에서 똑같이제공하는 것. (오버로딩은 매개변수가 다름)

오버라이딩 시 자식의 메소드가 우선이 된다.

super.메소드 를 호출하면 부모의 메소드가 호출된다.

 

2. 목적

1) 부모클래스의 메소드를 재정의

2) 부모클래스의 메소드를 확장

3) 동적바인딩