티스토리 뷰
1~2. 상속에 대한 기본개념과 사용법
3. 부모 생성자 호출
1. 자식이 생성 될 때, 부모 객체도 같이 생성된다.
2. 자식 생성자에 첫줄 에는 반드시 부모 객체를 생성하는 super(); 명령문이 있어야 한다. 없으면 자동으로 만들어진다.
4. 오버라이딩
1. 오버라이딩 조건 : 동일한 시그니처(리턴타입, 매개변수목록, 메소드이름) 을 가져야 한다.
2. 부모 메소드의 접근제한자 보다 더 강하게 접근제한을 걸 수 없다. 약하게는 가능(package -> public 가능)
5. final 클래스, 메소드
1. 최종적인 클래스므로 상속 불가능하며, 오버라이딩도 불가능 하다.
6. protected 접근제한자(상속 받았으면 사용할 수 있게해줌)
1. protected 가 걸려있는 필드,메소드이고, 이를 사용하는 객체가 상속을 받았다면, 다른 패키지에 있어도 사용가능하다.
7. 상속에서의 다형성
1. 부모 -> 자식으로 자동 타입변환 가능(자식이 더 크기 때문에)
2. ex) Animal animal = new Cat();
3. 자식 -> 부모로 형변환 되면, 당연히 부모 클래스의 필드,메소드만 접근가능하다.
4. 예외로, 자식에서 부모 메소드를 오버라이딩 했으면, 형변환 시 오버라이딩된 메소드로 대체된다.
8. 다형성
-> 매개변수, 필드변수를 부모 클래스로 놔두고, 이를 대입 할 때 자식 클래스로 대입하여 자동형변환 되게한다.
-> 그러면, 똑같은 문장으로도 다른 자식변수가 자동형변환 되어 대입되기에 다른 결과들을 가져 올 수 있게 된다.
9. 인터페이스 vs 추상클래스
1. 인터페이스는 뼈대로, 특정 메소드를 반드시 가지고 구현 해야 될것을 의미한다. 그러므로, 다중 implements 가 가능하다.
2. 추상클래스는, 특정메소드와 특정 필드를 상속을 통하여 가지게 하지만, 클래스 이므로 단 하나만 상속가능하다.
3. 정리 : 추상클래스는 기능을 구체화,확장 하는데 중점을 두고, 인터페이스는 기능을 가지게 하는데 목적이 있다.
'PL > Java' 카테고리의 다른 글
9. 중첩 클래스와 중첩 인터페이스, 익명객체 (0) | 2018.09.04 |
---|---|
8. 인터페이스 (0) | 2018.09.04 |
6-1 . OOP, 객체, final, 싱글톤, 클래스변수. (0) | 2018.08.24 |
5. 자바 메모리영역, 참조타입. (0) | 2018.08.22 |
2. 변수, String에 대한 이해, 타입변환 (0) | 2018.08.22 |