-> 메서드 이름 앞에 명시
- 부모 클래스의 메서드를 의미한다.
- 재정의 되지 않은 메서드
->이미 상속되어 있기 때문에
this 키워드를 사용하는 것과 동일한 결과를 갖는다.
- 재정이된 메서드
-> override된 메서드 이름앞에 사용하게 되면 재정의 되기이전의 원본메서드를 의미한다.
class Hello{
public void say(){
System.out.println("Hello");
}
}
class Korean extends Hello{
public void say(){
System.out.println("안녕하세요");
}
public void sayHello(){
super.say(); //super say는 위에 부모에게서 가져오고
this.say(); // this는 지금 윗블록에게서 가져옴
}
-> 키워드 자체를 메서드처럼 사용
- 부모클래스 의 생성자를 의미
- super();
package override;
class Hello3{ // 기본생성자는 괜찮으나
public Hello3(String name) { //파라미터를 가진 생성자는 문제가잇다
System.out.println(name);
}
}
class Korean3 extends Hello3 { //Hello3 라는 부모클래스를 상속받으려는데 객체에 오류가있다 이유는...
/*
* 부모와 동일한 파라미터를 받도록 생성자를 정의하고,
* 전달받은 파라미터를 부모에게 재전달 한다.
*/
public Korean3(String name) { //파라미터가있는 생성자 부모클래스를 상속받아 객체를 생성한 자식클래스는 자식클래스의 생성자도 파라미터를 갖춰서 반드시 정의를 해줘야한다.
super(name); // 그 후 super라는 키워드를 메소드처럼 사용해야한다.
}
}
public class Main03 {
public static void main(String[] args) {
Korean3 k = new Korean3("안녕"); //Korean3 자식클래스의 생성자를 가져온것이지만 그 자식클래스의생성자도 부모클래스의 파라미터를 가진 생성자로부터 가져왔다.
}
}
여러번보자