■ ReactJS: constructor()
Q. constructor() 사용 시에 super() 메서드를 사용해야 하는 이유
- 'this' is not allowed before super() error
A. http://cheng.logdown.com/posts/2016/03/26/683329
Q. constructor() 사용 시에 super() 메서드를 사용해야 하는 이유
- 'this' is not allowed before super() error
A. http://cheng.logdown.com/posts/2016/03/26/683329
[Java] 자바 super 키워드의 사용
super 키워드
- 재정의 하기 전(부모)의 메서드를 호출할 때 사용한다.
- 많은 신입 분들이 super가 수퍼 클래스를 가리키는 것이라고 오해를 한다.
- 정의
1) 자신을 뺀 조상 클래스에서 메서드를 찾는다.
2) 그 중 가장 가까이에 있는 메서드를 가리킨다.
m1(), m2(), m3() 메서드를 가진 A class 예제
public class A {
public class B extends A{
public class C extends B{
인스턴스 생성 및 메서드 호출 코드
public static void main(String[] args) {
- 실행 결과 :
B.m1()
C.m2()
C.m3()
------------------------------
B.m1()
B.m2()
A.m3()
B.m4()
B.m4()
C.m4()
------------------------------
[Java] 컬렉션 클래스 - [Set] HashSet (java.util.Hashset) (0) | 2017.05.16 |
---|---|
[Java] 캡슐화(encapsulation), 접근 제어자(private, default, protected, public) (0) | 2017.05.15 |
[Java] 상속과 super() 메서드 (0) | 2017.05.15 |
[Java] final 명령어 (public static final ...) (0) | 2017.05.15 |
[Java] 컬렉션 클래스 - List, Set, Map의 개념 정리 (3) | 2017.05.12 |
[Java] 자바 상속과 super() 메서드
2017/05/12 - [java] - [Java] 상속 (inheritance)과 Object 클래스
상속과 super() 메서드
- 상속 받은 클래스의 모든 생성자는 수퍼 클래스의 기본 생성자를 호출한다.
super();
- 만약 수퍼 클래스의 기본 생성자를 호출하는 코드를 작성하지 않는다면,
컴파일러가 생성자 블록의 첫 줄에 이 코드를 자동으로 삽입한다.
- 수퍼 클래스의 생성자를 호출하는 코드는 반드시 첫 명령어로 작성해야 한다.
그 앞에 주석은
수퍼 클래스의 기본생성자를 호출하는 super() 메서드 예제
}
}
인스턴스 생성 코드
}
- 실행결과 :
A()
B()
C()
*참고 :
수퍼 클래스(부모 클래스)의 기본 생성자를 호출하는 super() 메서드를 쓰지 않으면
컴파일러는 자동적으로 추가시킨다.
[Java] 캡슐화(encapsulation), 접근 제어자(private, default, protected, public) (0) | 2017.05.15 |
---|---|
[Java] super 키워드의 사용 (0) | 2017.05.15 |
[Java] final 명령어 (public static final ...) (0) | 2017.05.15 |
[Java] 컬렉션 클래스 - List, Set, Map의 개념 정리 (3) | 2017.05.12 |
[Java] 랩퍼(wrapper) 클래스와 boxing / unboxing (2) | 2017.05.12 |
[Java] 자바 오버라이딩 (overriding)과 super 키워드
오버라이딩 (overriding)
- 수퍼 클래스 (super cass)의 메서드를 재정의 하는 방법
- 서브 클래스의 조건에 맞춰서 기능을 바꾸는 것이 목적이다.
수퍼 클래스 예제
}
서브 클래스 예제
public class BitStudent extends Student{
호출 코드
- 수퍼 클래스의 메서드를 재정의할 때 기존 코드를 복사/붙여넣기 하는 대신
재정의하기 전의 기존 메서드를 호출하는 것이 편하다. 재정의 하기 전의 메서드를
가리키기 위해 super 라는 키워드를 사용하여 메서드를 호출한다.
* 참고
오버로딩 (overloading)
- 클래스 내에 동일한 이름을 가진 메서드를 여러 개 만들어 파라미터의 개수만 달리
하는 방법이다
- 메서드의 일관성을 유지하는 것이 목적이다.
[Java] 랩퍼(wrapper) 클래스와 boxing / unboxing (2) | 2017.05.12 |
---|---|
[Java] Object 클래스 - toString() 메서드의 재정의 예제 (0) | 2017.05.12 |
[Java] 상속 (inheritance)과 Object 클래스 (0) | 2017.05.12 |
[Java] String[] args (프로그램 아규먼트)란 무엇인가? (0) | 2017.05.11 |
[Java] 문자열 (String)과 상수 문자열 (String) 그리고 equals() 메서드 (0) | 2017.05.11 |