티스토리 뷰
1. 상속 받을 수 있는 클래스의 수는 단 하나이다.
2. 접근제어자는 자식클래스가 부모클래스보다 넓거나 같아야 한다.
[오버라이딩]
1. 메소드 호출 시에 오버라이딩 된 메소드가 우선적으로 호출된다.
ex)
class Human {
String name;
int age;
public void getInfo() {
System.out.println("name: "+name+"\nage: "+age);
}
}
Class Student extends Human {
int id;
public void getInfo() { // 오버라이딩
System.out.println("name: "+name+"\nage: "+age+"id: "+id);
}
}
public class InheritEx {
public static void main(String [] args) {
Student std = new Student();
std.getInfo(); // 어떤 getInfo 메소드가 실행될까?
}
}
부모 클래스인 Human과 자식 클래스인 Student에 모두 getInfo 메소드가 존재한다.
main 메소드에서 Student 객체를 만들어 getInfo 메소드를 실행하면 Student 클래스의 메소드가 실행되는데,
이는 메소드 호출 시 오버라이딩 된 메소드가 우선적으로 호출되기 때문이다.
2. 부모클래스의 메소드와 자식클래스의 메소드의 동작이 달라야 한다.
반응형
'Java, JavaScript' 카테고리의 다른 글
[Java] abstract과 final (0) | 2019.04.30 |
---|---|
[Java] 패키지(Package)와 접근 지정자(Access modifier) (0) | 2019.04.29 |
[Java] 생성자(Constructor)와 this/super 키워드 (0) | 2019.04.26 |
[Java] 클래스(Class) (0) | 2019.04.24 |
[Java] System.in , Scanner 입출력 (0) | 2019.04.24 |
댓글